我可以找到所有* class *变量吗?

时间:2011-10-19 23:38:31

标签: java classloader

从这个问题Can two copies of class variable exist?,我被告知如果多次加载类可能存在静态变量的多个实例,我能够找出所有出现的“重复”类的加载类加载器?

2 个答案:

答案 0 :(得分:3)

一般来说,不,你不能。您可以使用反射(查找classes字段)查找当前的类加载器并将其拆分,以查找已加载的类。

这已经导致了问题,因为它假设您知道ClassLoader实例中的内容 - 这很少是合理的假设。

您可以使用getParent()进一步提升类加载器树,并在父项中挖掘classes。你不能做的就是找到所有的类加载器 - 你可以上树,但不能在树下。问题是,你很少对父类加载器感兴趣 - 兄弟姐妹很感兴趣。

答案 1 :(得分:0)

返回并按照问题上的链接,我认为有很多其他问题和答案组合解释它,但基本上我认为如果类由不同的类加载器加载,可以存在不同的静态实例,它们将更可能是彼此完全分开,所以对于你所要求的,你不能有重复的实例

编辑:特别是这一个is it possible to have multiple instances of static variables