当前位置: 首页 > 面试题库 >

检查Java中是否存在枚举

林修雅
2023-03-14
问题内容

无论如何,通过将其与给定的字符串进行比较来检查是否存在枚举?我似乎找不到任何这样的功能。我可以尝试使用该valueOf方法并捕获异常,但是据我了解,捕获运行时异常不是一种好习惯。有人有什么想法吗?


问题答案:

我不认为没有捕获异常的内置方法。您可以改用如下方式:

public static MyEnum asMyEnum(String str) {
    for (MyEnum me : MyEnum.values()) {
        if (me.name().equalsIgnoreCase(str))
            return me;
    }
    return null;
}

编辑: 正如乔恩·斯凯特(Jon
Skeet)所述,values()每次调用时,都会通过克隆私有支持数组来工作。如果性能至关重要,则可能values()只需要调用一次,缓存阵列并对其进行迭代。

另外,如果您的枚举值很多,那么Jon Skeet的map替代方法可能比任何数组迭代都具有更好的性能。



 类似资料:
  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 我正在尝试检查$ _POST是否存在,如果存在,则在另一个字符串中打印它,如果不存在,则根本不打印。 像这样的东西: 任何帮助将是巨大的! 问题答案:

  • 问题内容: 我正在为jar应用程序创建一个Inno Setup安装程序。我现在想做的是在继续安装之前检查Java是否存在。因此,我只需要确保用户将能够运行: 我现在正在做的是: 我的问题是: 检查注册表是否足以确保Java的主目录位于PATH中?(以便能够在控制台中运行“ java”) 如果安装了更高版本的Java,注册表中的键是否仍然存在,或者我将不得不检查每个更高版本? 除了显示弹出窗口并将用

  • “String”类型的参数不能分配给“Types”类型的参数。

  • 问题内容: 在打开文件以Java读取之前,如何检查文件是否存在?(相当于Perl的)。 关于SO的唯一类似问题涉及写入文件,因此使用回答了该问题,这显然不适用于此处。 如果可能的话,我宁愿使用真正的API调用返回,而不是使用“调用API来打开文件并在引发异常时捕获并在文本中检查’无文件’的情况下捕获”,但是我可以接受后者。 问题答案: 使用: