Java 如何找出类定义了哪些枚举?

Java 如何找出类定义了哪些枚举?,java,Java,我知道我可以通过以下操作获得类的公共静态成员: obj.getClass().getFields() 但这并不能让我得到枚举。我希望能够从getClass方法返回的Class对象中获取它们。有什么想法吗?(变成了一个社区维基,因为它看起来有相当大的扩展空间,例如包括tackline的评论。在我看来,当每个人都可以扩展它的时候,仅仅抄写评论是没有意义的。) 你是说嵌套在顶级类中的枚举吗?如果是,请使用并遍历结果,查看是否有任何嵌套类是枚举。测试每个嵌套类的最简单方法是使用;如果您想遍历枚举中的值,

我知道我可以通过以下操作获得类的公共静态成员:

obj.getClass().getFields()

但这并不能让我得到枚举。我希望能够从getClass方法返回的Class对象中获取它们。有什么想法吗?

(变成了一个社区维基,因为它看起来有相当大的扩展空间,例如包括tackline的评论。在我看来,当每个人都可以扩展它的时候,仅仅抄写评论是没有意义的。)


你是说嵌套在顶级类中的枚举吗?如果是,请使用
并遍历结果,查看是否有任何嵌套类是枚举。测试每个嵌套类的最简单方法是使用
;如果您想遍历枚举中的值,那么
是一种方法。

只是一句话,您可以根据需要使用getClass()或GetDeclaredClass()。@Alexander:我怀疑GetDeclaredClass()几乎总是一种方法,所以我编辑了答案。我收回了我的答案,因为这个答案现在更一般了,听起来对我来说是一个非常明智的方法。:-)如果它是一个专门的枚举常量,您需要
getSuperclass
。public enum En{X(){public String toString(){return”“;}}};static{System.err.println(X.getClass().getEnumConstants());}如果它是一个枚举,getEnumConstants将返回该类定义的枚举“元素”(请参阅)