小结
- 在实际操作中,取得类的信息的操作代码,并不会经常开发
- 一定要熟悉java.lang.reflect包的作用,反射机制
- 如何获取属性,方法,构造器的名称,修饰符等
package com.kuang.reflection;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Test09 {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException, NoSuchFieldException {
Class c1 = Class.forName("com.kuang.reflection.User");
User user3 = (User)c1.newInstance();
Method setName = c1.getDeclaredMethod("setName", String.class);
setName.invoke(user3,"wzw");
System.out.println(user3.getName());
User user4 = (User)c1.newInstance();
Field name = c1.getDeclaredField("name");
name.setAccessible(true);
name.set(user4,"wzw2");
System.out.println(user4.getName());
}
}