【问题标题】:Return List of Enum values from string literal of Enum's name从枚举名称的字符串文字返回枚举值列表
【发布时间】:2012-08-02 19:21:04
【问题描述】:

假设我有一个带值的字符串

'Language'

我有一个名为 Language 的枚举

enum Language{
    English,
    Spanish,
    French
}

有没有办法使用字符串“语言”并返回枚举语言的值。我基本上想知道是否有一种方法可以通过传入字符串来获取枚举语言的实例。有点像

Class.forName()

但对于枚举。

【问题讨论】:

标签: java reflection enums


【解决方案1】:

枚举是一个类,因此使用完全限定名称(例如,"com.mydomain.myapp.Language")您可以从Class.forName 获取枚举的类。从那里,您可以在 Class 对象上使用反射:getEnumConstants 为您提供所有枚举值,如果您想要名称,您可以在枚举对象上使用 .name

【讨论】:

  • 什么是 com.mydomin.myapp?另外我的枚举在一个包中,所以我如何在名称中包含它
  • 类的完全限定名as in docs
  • 我认为这是正确的答案,只是想添加另一个链接,其中包含 Oracle 的教程,展示了如何使用反射来获取值:docs.oracle.com/javase/tutorial/reflect/special/…
  • 我从来没有真正理解完全限定的类名。如果我的应用程序名为 Notebook,枚举名为 Notes 包中的 Language,那么完全限定名称是什么?
  • @Daniel:您有大量的 Java 教程解释这一点,例如 docs.oracle.com/javase/tutorial/java/package/packages.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-24
  • 1970-01-01
  • 2011-10-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多