java 訪問類私有變量


1. 現在我們有類A(class A)及類B(class B),需要將類A指定的字段(List<String> fields)值賦給類B同樣的字段,這些字段都是類的私有字段
2. 實現方法如下:
A a = new A()
B b = new B(); // 創建B類實例,用於接收值
Class aClass = A.class;
Class bClass = B.class;
fields.forEach(field -> {
try {
Field afield = aClass.getDeclaredField(field); //獲取A類的field
Field bfield = bClass.getDeclaredField(field); //獲取B類的field
bfield.setAccessible(true); //由於是private的,因此設置為可訪問才能獲取值
afield.setAccessible(true); //由於是private的,因此設置為可訪問才能設置值
afield.set(b, bfield.get(a)); //將a的field值賦給b
} catch (Exception e) {
e.printStackTrace();
}
});

參考:

Java Reflection - Private Fields and Methods


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM