-
new创建对象是静态加载,在编译时刻就需要加载所有的可鞥使用到的类
查看全部 -
获取方法对象,用方法对象进行反射操作
查看全部 -
类的类类型:
查看全部 -
类本身就是对象,是java.lang.Class类的实例对象
查看全部 -
类是对象,类是class的对象查看全部
-
public static void printClassMessage(Object obj){
Class c=obj.getClass();
Method[] ms=c.getMethods();getmethods获取所有的public的函数,包括父类继承而来的。
c.getDeclaredMethods()获取所有该类自己声明的方法,不问访问权限
for(int i=0;i<ms.length;i++){
Class a=ms[i].getReturnType();得到方法的返回值类型的类类型
String b=ms[i].getName();得到方法的名称
Class[] c=ms[i].getParameterTypes();获取参数类型。得到的是参数列表的类型的类类型
for(Class d:c){
String a=d.getName()
}
}
查看全部 -
所有类都是class类是实例对象
class Foo{
}
Foo foo1 = new Foo();
JAVA 反射的三种使用方式
类名.Class
类的实例对象.getClass()
Class.forName("含包的类名称完整路径")
Class c1 = Foo.class;
Class c2 = foo1.getClass();
Class c3 = Class.forName("com.imooc.reflect.Foo"); //完整路径
c1 c2 c3 为同一个class的实例
通过类的类类型创建该类的对象实例--》通过 c1 or c2 or c3创建Foo的实例
Foo foo = (Foo) c1.newInstance();//需要有无参数的构造方法
查看全部 -
通过类类型动态加载类,newInstance关键字
查看全部 -
通过NEW关键字创建对象是静态加载类,在编译的时候就要加载所有可能用到的类
查看全部 -
Class c=g.getClass();
c.getDeclaredMethods();获取的是该类声明的方法不问访问权限
c.getMethods();获取的是该类声明方法返回的public的方法
查看全部 -
class.forName("")
方法.getClass()
查看全部 -
反射查看全部
-
String是Class的实例,String为该类的类型
查看全部 -
Class 类
类是对象,类是java.lang.class类的实例对象
查看全部 -
new创建对象是静态加载类,在编译时刻就需要加载所有可能用到的类,如果一个项目中有100个方法,99个没问题,只有一个有问题,那么如果想要调用好用的类也是没法调用的,就是因为有一个有问题,这就是静态架子啊的弊端。
查看全部
举报