Java_Reflect反射
类是对象,类是java.lang.Class类的实例对象。There is a class named Class
class Foo{}
public class ClassDemo{
public static void main(String args){
Foo foo1=new Foo();
//Foo这个类也是一个实例对象,是Class类的实例对象
//任何一个类都是Class类的实例对象,这个实例对象有3种表示方式
//1.第一种表达方式--->实际在告诉我们任何一个类都有一个隐含的静态成员变量
Class c1=Foo.class;
//2.第二种表达方式 已经知道该类的对象通过getClass方法
Class c2=foo1.getClass();
//官方 c1,c2表示了Foo类的类类型(class type) c1==c2
//3.第三种表达方式
Class c3=null;
try{
c3=Class.forname("com.imooc.reflect.Foo"); //c1==c2==c3
}catch(ClassNotFoundException e){
e.printStackTrace();
}
//通过类的类类型创建该类的对象实例
try{
Foo foo=(Foo)c1.newInstance(); //需强制类型转换
}catch(IllegalAccessException e){
e.printStackTrace();
}
}
}
动态加载类:
Class.forName("类的全称")