反射之操作類,方法,屬性等

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));



  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章