-
让我请二位v查看全部
-
Class.forName创建类查看全部
-
反射累创建查看全部
-
获得对象的方法: Object obj = new Object();--静态加载类,编译时校验 1、Object.class; 2、obj.getClass(); 3、Class.forName("Object")查看全部
-
泛型的原理查看全部
-
反射是编译之后的操作,泛型是编译之前的查看全部
-
class Student{} Student s=new Student(); 三种方法表示类类型 1.Class c=Student.class; 2.Class c=s.getClass(); 3.Class c=Class.forName("Student");查看全部
-
Java反射机制——获取成员变量&构造函数 一、成员变量是java.lang.reflect.Field的对象 1、Field类封装了关于成员变量的操作 2、Field[] fs = c.getFields()方法获取所有public的成员变量Field[]信息 3、c.getDeclaredFields获取的是该类自己声明的成员变量信息 4、field.getType()获得成员类型的类类型 5、field.getName()获得成员的名称 二、构造函数是java.lang.Constructor类的对象 1、通过Class.getConstructor()获得Constructor[]所有公有构造方法信息 2、建议getDeclaredConstructors()获取自己声明的构造方法 3、Constructor.getName():String 4、Constructor.getParameterTypes():Class[] 成员变量也是对象,是java.lang.reflect.Field的对象;查看全部
-
方法: 1)如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2)方法反射的操作 method.invoke(对象,参数列表)查看全部
-
类是Class的对象,获取类类型有三种方式:<br> Class c1=obj.getClass();<br> Class c2=Object.class;<br> Class c3=Class.getname("java.lang.String");<br> 方法是Method的对象 通过Method[] ms=c.getMethods();获取该类所有的方法的集合 ms[i].getName();获取方法名 ms[i].getReturnType();获取返回值的类类型,需要通过getName才能获得类名 ms[i].getParameterTypes();获取参数列表的类类型查看全部
-
Class c1=int.class;//int的类类型(这是基本数据类型的类类型) Class c2=Integer.class;//Interger的类类型,这是类的类类型,与上面的int.class不是同一个东西。 通过c1.getName()就可以看出两者的区别查看全部
-
编译时刻加载类是静态加载类,运行时刻加载类是动态加载类 new 创建对象是静态加载类,在编译时刻就需要加载所有的可能使用到的类 通过Class a=Class.forName(arg[0]);此时为动态加载,因为编译时不知道使用哪个类,因此编译没有加载任何类,通过编译。运行时,根据 Javac office.java word (word为arg[0],也是类类型),去确定a是哪个类。这就是动态加载。如果word不存在,此时运行会报错。这就是为何有时候会出现编译通过,运行报错的原因。 动态加载一个好处,就是可以随时增加需要编译的类。例如没有excel类,只有word类,也可以运行,需要excel类时再由程序员写此类(为了能统一控制,word类、excel类需要继承同一个父类或者继承同一个接口)。查看全部
-
功能性的类一般采用动态加载而不用静态加载,方便后期维护扩展查看全部
-
Class.forName("类的全称") a:不仅表示了类的类类型,还代表了动态加载类 b:区分编译、运行 c:编译时刻加载类是静态加载类, 运行时刻加载类是动态加载类查看全部
-
类是java.lang.Class类的实例对象查看全部
举报
0/150
提交
取消