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