-
静态加载类是在编译时进行,动态加载类是在运行时进行;静态加载在编译时有错误会报错,动态加载在编译时有错误不会报错,在运行时才会报错。new HelloWorld()是静态加载类,Class.forName(包名.HelloWorld)是动态加载类。查看全部
-
//HelloWorld类也是对象,是java.lang.Class类的对象 //每一个类都有一个隐含的静态成员变量class Class c1 = HelloWorld.class //已知道该类的对象,通过getClass()方法获得类类型 HelloWorld hello = new HelloWorld(); Class c2 = hello.getClass(); //通过Class类的forName()方法 Class c3 = Class.forName("包名.HelloWorld"); 结果:c1==c2==c3 (c1,c2,c3称为类类型) //通过类类型的newInstance()方法,可以获得类的对象 HelloWorld hello2 = (HelloWorld)c1.newInstance();查看全部
-
知识点总结查看全部
-
如果验证 绕过编译就无效了 可以通过方法的反射来操作 绕过编译 可以list1中加入整数了 打印size 为2 说明 string的集合 放入了整数 但是不能for 循环打印 因为会报类的转换异常查看全部
-
反射的操作都是编译之后的操作 ArrayList list=new ArrayList() ArrayList<String> list1=new ArrayList<String>() Class c1=list.getClass() Class c2=list1.getClass() 打印c1=c2 为true 说明编译之后集合的泛型是 去泛型化的 java中的集合的泛型 是防止错误输入的 只在编译阶段有效 绕过编译就无效了查看全部
-
方法反射时 返回值 用Object 获取查看全部
-
获取类中指定的某一个方法例子getMethod(方法名,参数,canshu,,,,,,) 如果没有参数直接getMethod(方法名) 需要抛异常 然后 m.invoke(a1,10,20)如果没有参数 可以直接 m.invoke(a1)查看全部
-
方法的反射查看全部
-
获取类的构造函数和 构造函数里的参数类型 也有两种方法 Contructor[] cs=class.getContructors() class.getDeclaredContructors() Class[] paramTypes=Contructor.getParameterTypes();查看全部
-
成员变量的获取查看全部
-
获取类的成员变量信息的两种方法 getFields()和getDeclaredFields() getFields() 获取的是所有的public 的成员变量信息 getDeclaredFields() 获取的是该类自己声明的成员变量信息 不管公有或私有查看全部
-
获取类的方法 以及 方法的 返回值类型和参数类型查看全部
-
获取类中method的两种方式 class.getMethods()和getDeclaredMehthods()以及区别 getDeclaredMehthods是获取所有的自己类中的方法 不管public private 等查看全部
-
静态和动态加载类 解释查看全部
-
获取Class实例的三种方式 比如 Fool f=new Fool() 1.Class c1=f.getClass;2.Class c2=Fool.class 3 Class c3=Class.forName("com.aa.bb.Fool"); 也可以根据 c1 or c2 or c3 获取fool的实例化 Fool f2=(Fool)c2.newInstance() Instance 是实例的意思 用这个方法必须fool 有无参数的构造方法 且需要强制转换 还有异常 抛出或捕获查看全部
举报
0/150
提交
取消