如果我只从一个类中获得一个字段实例,而没有进一步了解声明该字段的类,是否可以获得声明(外部)类的实例?
例如,考虑以下类结构。
class A {
static final Tclass t = Tclass.create();
}
现在,在其他一些函数中,我们只给出了t(Tclass实例)。是否有可能以某种方式使用反射来获取保存t的外部/声明类(A类)?
答案 0 :(得分:1)
我不认为语句给出意味着你认为它意味着什么。
如果你的意思是你做了类似
的事情someMethod(t);
并且您希望someMethod
获得对A
的引用,您运气不好。当在类似表达式中使用时,表达式t
将解析为值。该值是对象的引用。这样的引用只是单向。 someMethod
完全不了解static
变量t
的存在。
如果您的Field
实例为t
,则只需致电Field#getDeclaringClass()
即可获得声明课程。