1 java反射的常规使用步骤:
- 得到要调用类的class
- 得到要调用类的method,传入method名和参数类型
- 方法调用
-
# Class cls = Class.forName("chb.test.reflect.Student"); # Method m = cls.getDeclaredMethod("hi",new Class[]{int.class,String.class}); m.invoke(cls.newInstance(),20,"chb");
2 方法调用的参数
如果是基本类型,不能使用它的包装类型。如int.class 不能用Integer.class代替
3 static的方法调用
跟第一步一样,就是调用的时候,不需要实例。
如m.invoke(cls,20,"ztk");
4 private 域的访问和修改
Class cls = Class.forName(".....");
Field field = cls.getDeclaredField( "age" );
fileld.setAccesible(true);
field.setAge(49);
field.get("..");