反射 - 在飞行中将对象投射到未知的超类?



嗨,我处于这样一种情况,我可以访问扩展Foundation的类House(请注意类名称是假设的)。我有一个类型为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的类,所以我不能强制转换(Foundation)foundationObject

有解决办法吗?谢谢你的帮助。


更好的表述这个问题的方式可能是:我能从一个对象中获得超类类型的非静态对象吗?

尝试list.get(houseObject)可访问性更改将级联到子类,因此该字段将直接从houseObject访问

相关内容

  • 没有找到相关文章

最新更新