Java 我能找出我所有的*类*变量吗?

Java 我能找出我所有的*类*变量吗?,java,classloader,Java,Classloader,从这个问题中,我被告知如果类被多次加载,静态变量的多个实例可能存在,我是否能够找到类加载程序加载的“重复”类的所有实例?返回并按照问题上的链接进行操作,我认为还有很多其他的问答组合可以解释它,但基本上我认为如果类由不同的类加载器加载,则可以存在不同的静态实例,它们很可能会彼此完全分离,因此对于您所问的问题,您不能有重复的实例 编辑:特别是这一个返回并遵循问题的链接,我认为还有很多其他问答组合可以解释它,但基本上我认为如果类由不同的类加载器加载,则可能存在不同的静态实例,它们更可能彼此完全分离,因

从这个问题中,我被告知如果类被多次加载,静态变量的多个实例可能存在,我是否能够找到类加载程序加载的“重复”类的所有实例?

返回并按照问题上的链接进行操作,我认为还有很多其他的问答组合可以解释它,但基本上我认为如果类由不同的类加载器加载,则可以存在不同的静态实例,它们很可能会彼此完全分离,因此对于您所问的问题,您不能有重复的实例


编辑:特别是这一个

返回并遵循问题的链接,我认为还有很多其他问答组合可以解释它,但基本上我认为如果类由不同的类加载器加载,则可能存在不同的静态实例,它们更可能彼此完全分离,因此,对于您所要求的,您不能有重复的实例


编辑:特别是这个

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

这已经引起了问题,因为它假设您知道
ClassLoader
实例中的内容,这很少是一个合理的假设


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

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

这已经引起了问题,因为它假设您知道
ClassLoader
实例中的内容,这很少是一个合理的假设


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

我认为您不理解您引用的答案。单个类加载器不能加载同一个类两次。我认为您不理解您引用的答案。单个类加载器不能加载同一个类两次。