1、
package reflectionZ; import java.lang.reflect.Constructor; import java.lang.reflect.Field; public class Treflection03 { public static void main(String[] args) throws Exception { // 第16课 // getFields 和 getField Class<?> clazz1 = Class.forName("reflectionZ.Cat"); // 通过Class对象来得到构造函数 Constructor<?> c2 = clazz1.getConstructor(String.class, int.class); Object obj = c2.newInstance("小猫咪", 1); Field field = clazz1.getField("FstrName"); //field.getModifiers(); // 返回修饰符 String strName = (String)field.get(obj); System.out.println("strName : "+strName); Field field02 = clazz1.getDeclaredField("Fstr1"); field02.setAccessible(true); // 暴力访问 String str1 = (String)field02.get(obj); System.out.println("str1 : "+str1); // 这里看出来,反射机制 对于属性的set/get 貌似不是通过 setter/getter方法... field.set(obj, "XiaoMaoMi"); strName = (String)field.get(obj); System.out.println("strName : "+strName); } }
2、