Java反射相关的:
Member接口 | 该接口可以获取有关类成员(域或者方法)后者构造函数的信息。 |
AccessibleObject类 | 该类是域(field)对象、方法(method)对象、构造函数(constructor)对象的基础类。它提供了将反射的对象标记为在使用时取消默认 Java 语言访问控制检查的能力。 |
Array类 | 该类提供动态地生成和访问JAVA数组的方法。 |
Constructor类 | 提供一个类的构造函数的信息以及访问类的构造函数的接口。 |
Field类 | 提供一个类的域的信息以及访问类的域的接口。 |
Method类 | 提供一个类的方法的信息以及访问类的方法的接口。 |
Modifier类 | 提供了 static 方法和常量,对类和成员访问修饰符进行解码。 |
Proxy类 | 提供动态地生成代理类和类实例的静态方法。 |
Class 对象:
(1)Boolean var1 = true;
Class<?> classType2 = var1.getClass();
2.
Class<?> classType4 = Boolean.class;
3.Class<?> classType5 = Class.forName("java.lang.Boolean");
获取类的Fields:可以通过反射机制得到某个类的某个属性,然后改变对应于这个类的某个实例的该属性值
public Field getField(Stringname) public Field[] getFields() 。。。。。。。
获取类的Method:通过反射机制得到某个类的某个方法,然后调用对应于这个类的某个实例的该方法
新建类的实例:
Class<?> classType = ExtendType.class;
Object inst = classType.newInstance();
||
Constructor<?> constructor1 = classType.getConstructor();
Object inst = constructor1.newInstance();
||
Constructor<?> constructor2 =
classType.getDeclaredConstructor(int.class, String.class);
Object inst = constructor2.newInstance(1, "123");
DEMO:
Class ownerClass = Class.forName("com.test.demo.scroll.ScrollLayout"); Method methodSet = ownerClass.getMethod("setmScrollX", Integer.TYPE); methodSet.invoke(myCustomLayout, 256); Method methodGet = ownerClass.getMethod("getmScrollX"); int m = (Integer) methodGet.invoke(myCustomLayout); Method methodStop = ownerClass.getMethod("handleStop"); methodStop.invoke(myCustomLayout);