-
动态加载类方法,Class.forName("类的称"),运行时的加载是动态加载
编译时加载类是静态加载
查看全部 -
使用类的类类型创建类的对象实例方法
Foo foo = (Foo)c1.newInstance
查看全部 -
任何一个类都是Class类的实例对象,这个实例对象有三种方式
1 Class c1 = Foo.class//实际是说每个类都有一个隐含的class成员变量
2 Class c2 = foo.getClass()//类的类类型,万事万物皆对象,这个对象称为该类的类类型
3 Class c3 = Class.forName("com.imooc.reflect.Foo")
(c1==c2==c3)=true,一个类只能是Class类的一个实例对象
查看全部 -
类是对象,是java.lang.Class这个类的实例对象
查看全部 -
类是对象,是java.lang.Class的实例对象,这个实例对象有三种表示方式
class Foo{} 类
Class c1=Foo.class; (类名)
Class c2=foo1.getClass();
c1,c2 表示了父类的类 类型(class type)
3.Class c3=null;
c3=Class.forName("com.imooc.reflect.Foo") 类全名
c1=c2=c3 都是Foo类的类类型
查看全部 -
类是对象,是java.lang.Class的实例对象,这个实例对象有三种表示方式
class Foo{} 类
Class c1=Foo.Class; (类名)
Class c2=foo1.getClass();
c1,c2 表示了父类的类 类型(class type)
3.Class c3=null;
c3=Class.forName("com.imooc.reflect.Foo") 类全名
c1=c2=c3 都是Foo类的类类型
查看全部 -
/**
* 反射的操作都是编译之后的操作
* c1==c2结果相等,说明编译之后集合的泛型是去泛型化的
* java中集合的泛型是防止错误输入的,只在编译阶段有效
* 绕过编译泛型就无效了
* 验证:可以通过方法的反射来操作,绕过编译
*/
查看全部 -
/**
* 获取方法,方法由名称和参数列表决定
* getMethod()获得的是public的方法
* getDeclearedMethod()获得的是自己声明的方法
*/
查看全部 -
/**
* 构造函数也是对象
* 是java.lang.Constructor类的对象
* java.lang.Constructor类封装了构造函数的操作信息
*/
查看全部 -
/**
* 成员变量也是对象
* 成员变量是java.lang.reflect.Field类的对象
* Field类封装了关于成员变量的操作
* getField()获得的是所有public的成员变量的xinxi
* getDeclearedField()获取的是该类自己声明的所有成员变量
*/
查看全部 -
Method类是方法的类,一个方法是一个Method类的对象
查看全部 -
类是对象,类是java.lang.Class类的实例对象.
查看全部 -
12345
查看全部 -
1.类是java.lang.Class的对象,有三种方法可以拿到类的类类型。经常使用的是Class.forName或者对象.getClass()。
2.new方法是编译期静态加载对象,需要保证编译时对象就存在且正确。使用类的类类型来加载对象是动态加载对象,运行时正确即可。
3.通过反射可以调用类的方法,哪怕是private的方法,从而修改一些默认的行为。查看全部 -
类有隐含的静态成员变量class查看全部
举报