获取表示声明字段的类的Class

时间:2014-09-20 01:19:45

标签: java reflection

如果我只从一个类中获得一个字段实例,而没有进一步了解声明该字段的类,是否可以获得声明(外部)类的实例?

例如,考虑以下类结构。

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

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

1 个答案:

答案 0 :(得分:1)

我不认为语句给出意味着你认为它意味着什么。

如果你的意思是你做了类似

的事情
someMethod(t);

并且您希望someMethod获得对A的引用,您运气不好。当在类似表达式中使用时,表达式t将解析为值。该值是对象的引用。这样的引用只是单向someMethod完全不了解static变量t的存在。

如果您的Field实例为t,则只需致电Field#getDeclaringClass()即可获得声明课程。