您的位置:首页 > 编程语言 > Java开发

Java反射创建类对象的三种实现方法

2018-01-24 22:01 176 查看
public class Main {
public static void main(String[] args) {
//Foo的实例对象创建
Foo foo = new Foo("abcdefgh");
//Class类的实例对象
//任何一个类都是Class的实例对象,这个实例对象有三种表示方式
//第一种表示方式----》 实际在告诉我们任何一个类都有一个静态成员方法
Class c1 = Foo.class;
//第二种表示方式 已经知道该类的对象通过gtClass方法
Class c2 = foo.getClass();
//c1,c2表示了Foo类的类类型(class type)
/**万事万物皆是对象,
* 类也是对象,是class类的实例对象
* 这个对象我们称为该类的类类型
* */

//c1 or c2 都代表了Foo类的类类型 ,一个类只能是Class类的对象
System.out.println(c1==c2);

//第三种方式

Class c3 = null;
try {
c3 = Class.forName("Foo");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(c2==c3);
try {
Foo foo1=(Foo) c1.newInstance(); // 需要无参的构造方法
foo1.print();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
//我们完全通过类的类类型创建该类的对象实例---> 通过c1 or c2 or c3
}
class Foo{

void print(){
System.<
8108
em>out.println("Foo");
}
Foo(String a){

}
Foo(){

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: