// 操作类中的属性 public static void main(String[] args) throws Exception { Class<?> c1 = null; try { c1 = Class.forName("fanshe.Person"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Object newInstance = c1.newInstance(); Field nameField = null; Field ageField = null; nameField = c1.getDeclaredField("name");// 取得属性 ageField = c1.getDeclaredField("age");// 取得属性 nameField.setAccessible(true); ageField.setAccessible(true);// 将属性设置为,可被外部访问 nameField.set(newInstance, "Lee");// 设置属性 ageField.set(newInstance, 15); System.out.println(nameField.get(newInstance)); System.out.println(ageField.get(newInstance));// 通过get取得属性内容 }
// 反射操作数组 public static void main(String[] args) { int[] arr = { 1, 2, 3 }; Class<?> componentType = arr.getClass().getComponentType(); String name = componentType.getName();//得到数组类型 System.out.println(name); Array.set(arr, 0, 8);// 给数组,赋新值 System.out.println(Array.get(arr, 0)); }