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