首頁>技術>

新年好,各位打工人

我們先來搞明白,透過反射來設定和獲取屬性的值有什麼用處 ------> 反射機制雖然讓我們的程式碼更加複雜了,但是非常的靈活,為了靈活所以就是值得的,在我們以後學習的框架中,反射機制有著非常大的作用。理解反射有助於我們學習框架的底層程式碼和原理。

我們正常為屬性複製只需要兩步1、//建立物件 Student stu = new Student(); 2、//設定屬性值 stu.setName("張三");

透過反射來為屬性賦值:1、//獲取類的位元組碼 Class c = Student.class; 2、//建立物件 Object obj = c.newInstance(); 3、//獲取name屬性物件 Field nameField = stuClass.getDeclaredField("name"); 4、//設定屬性的值 nameField.set(obj, "趙東");5、 //獲取屬性的值 String nameVal = (String) nameField.get(obj);

我們來看下程式碼:

總結:透過反射來操作類,第一步永遠都是先獲取這個類的位元組碼檔案,只有位元組碼才能獲取屬性的物件,因為獲取的屬性也是物件,所以設定和獲取屬性的值,需要 屬性物件.set(物件,值);這種形式。

重點:如果物件裡面的屬性是private私有的,那麼我們需要新增一行程式碼 要打破封裝:nameFiled.setAccessible(true); 這樣設定完之後,在外部也是可以訪問private的。

10
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 資料分析神器pandas