16---java反射机制02(使用Class)
来源:互联网 发布:黑魂3帧数优化补丁3dm 编辑:程序博客网 时间:2024/06/04 20:15
Class 类的使用:
可以通过Class类完成对象的实例化操作;
可以同过Constructor类调用有参数构造方法完成对象的实例化操作;
Class主要是反射的源头,不光可以取得对象所在的类 的信息,也可以通过Class类的
方法进行对对象的实例化操作,正常情况下,使用关键字new为对象实例化,如果现在
已经实例化好了Class对象;则可以通过Class类中提供的newInstance
package com.lid;
class Person{
private String name;
private int age;
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String toString(){
return "姓名:"+this.name+";年龄:"+this.age;
}
}
public class Demo{
public static void main(String args[]){
Class<?> c=null;//声明Class对象
try{
c=Class.forName("com.lid.Person");
}
catch(Exception e){
e.printStackTrace();
}
Person per=null;
try{
per=(Person)c.newInstance();//实例化对象
}
catch(Exception e){
}
per.setName("lid");
per.setAge(30);
System.out.println(per);
}
}
用Class实例化对象的时候,必须保证类中存在一个无参数构造,否则无法使用;;
如果要想调用有参数构造进行对象的实例化操作,则必须使用Constructor
类完成,此类表示构造方法,并通过可变参数传递要求的内容;
package com.lid;
import java.lang.reflect.*;
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String toString(){
return "姓名:"+this.name+";年龄:"+this.age;
}
}
public class Demo{
public static void main(String args[]){
Class<?> c=null;//声明Class对象
try{
c=Class.forName("com.lid.Person");
}
catch(Exception e){
e.printStackTrace();
}
Person per=null;
Constructor<?>[] con=null;
con=c.getConstructors();
try{
per=(Person)con[0].newInstance("lid",20);
}
catch(Exception e){
}
System.out.println(per);
}
}
- 16---java反射机制02(使用Class)
- 16---java反射机制00(Class类的理解)
- 16---java反射机制01(认识Class)
- Java反射机制和Class
- Java反射机制-class类
- java反射机制---Class.forName("")
- Java反射机制--Class类
- Class与java反射机制
- Java反射机制-Class类
- Java反射机制--Class类
- 使用 JAVA 类反射机制 : Class, Constructor, and newInstance
- JAVA反射机制——Class 类的使用
- java反射机制 及 Method.invoke,Class. getMethod()的使用
- java反射机制 及 Method.invoke,Class. getMethod()的使用
- java反射机制(获取class的三种方式)
- 非深入探寻Java反射机制 (Class)
- java反射机制剖析(二)— Class Loader
- java反射机制剖析(二)— Class Loader
- 16---java反射机制00(Class类的理解)
- Android-NDK开发之基础--Android JNI实例代码(二)-- 获取/设置类的域或者说属性字段
- 这些小问题你会回答吗?
- 大小端问题
- 16---java反射机制01(认识Class)
- 16---java反射机制02(使用Class)
- Android-NDK开发之基础--Android JNI实例代码(三)-- 在JNI中构造和实例化Java类
- 在DataGrid中处理Column值的显示以及排序
- 16---java反射机制03(取得类结构)
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- FLASH 延时函数
- C#——DataGridView分页功能的实现
- Axure RP使用示例-逻辑判断
- 人类无法抗拒的10种心理