2014-09-20 64 views
0

如果我只从一个类中获得一个字段实例,但没有关于声明该字段的类的更多知识,是否可以获取声明(外部)类的实例?获取表示声明一个字段的类的类

例如,请考虑以下类结构。

class A { 
    static final Tclass t = Tclass.create(); 
} 

现在,在其他一些函数中,我们只给出t(Tclass实例)。是否有可能以某种方式使用反射来获取持有t的外部/声明类(A类)?

回答

1

我不认为陈述给予t意味着你的想法。

如果你的意思是你做这样的事情

someMethod(t); 

,你想someMethod得到一个参考回到A,你的运气了。当用于这样的表达式时,表达式t解析为一个值。该值是对对象的引用。这种参考仅限于单向someMethod完全不知道static变量t的存在。

如果你的意思是你有一个Field实例为t,你可以简单地调用Field#getDeclaringClass()来获取声明类。

+0

有道理。谢谢。我所希望的是,t实例保留了其包含类的信息。可能不会。 – bigfy 2014-09-20 01:37:13