您好我处于可以访问类House
的情况,其中Foundation
扩展(请注意类名称是假设的)。我有一个House
类型的对象,我想得到设置为私有的字段Foundation.width
。我想出了代码:
1.) Field list = houseObject.getClass().getSuperclass()
.getDeclaredField("width");
2.) list.setAccessible(true);
3.) this.width = (double)list.get(foundationObject);
问题在于第3行我无法访问foundationObject,我可以访问houseObject,因为我在编译时并不真正知道基础类,所以我无法转换(Foundation)foundationObject
。
有解决方案吗?谢谢你的帮助。
<小时/> 提出这个问题的更好方法也可能是:我可以从对象中获取超类的非静态对象吗?
答案 0 :(得分:1)
尝试list.get(houseObject)
辅助功能更改将级联到子类,因此可以直接从houseObject
访问该字段。