標籤:反射
1.操作類
擷取類,並通過反射擷取一個執行個體對象
Class class1 = Student.class;
Student student = (Student)class1.newInstance(); //預設調用無參數的構造方法
student.setName("heh");
System.out.println(student.getName());
2.操作構造方法
擷取指定參數類型的構造方法,通過此對象建立一個特定參數值的執行個體對象
Class class1 = Student.class;
Constructor<?> constructor = class1.getConstructor(String.class,String.class,int.class);
Student student1=(Student)constructor.newInstance("123","456",12);
System.out.println(student1.getAge());
3.操作普通方法
Class class1 = Student.class;
Student student=(Student)class1.newInstance();
Method method=class1.getMethod("setAge", int.class);
method.invoke(student,10);
System.out.println(student.getAge());
4.操作屬性
Class class1 = Student.class;
Student student = (Student) class1.newInstance();
Field fiel=class1.getDeclaredField("age");
fiel.setAccessible(true); //AccessibleTest類中的成員變數為private,故必須進行此操作
fiel.set(student, 10);
System.out.println(student.getAge());
5.修改數組的值
int[] a= {1,2,3,4,5,6,7,8,9};
Class class1 = a.getClass().getComponentType(); //返回表示數組組件類型的 Class。如果此類不表示數組類,則此方法返回 null
System.out.println("數組資料的名稱:"+class1.getName());
System.out.println("數組的長度:"+Array.getLength(a));
System.out.println("資料的第一個元素的值:"+Array.get(a,0));
Array.set(a, 0, 12);
System.out.println("資料的第一個元素的值:"+Array.get(a,0));
本文出自 “程式員菜鳥” 部落格,請務必保留此出處http://5345468.blog.51cto.com/5335468/1690318
反射之操作類,方法,屬性等