Java 枚举映射与属性

Java 枚举映射与属性,java,data-structures,architecture,properties,enum-map,Java,Data Structures,Architecture,Properties,Enum Map,有没有人想到什么是更好的,EnumMap或属性(或者至少在我的情况下?)我使用的是第三方软件包,该软件包使用以下方法在我的代码和应用程序之间进行通信: TheirRuntime.getInstance().getParameter(String paramName) 目前,我创建了一个enum,其工作原理如下: public enum MyEnum { FOO_BAR ("fooBar"), BAZ_QUUX ("bazQuux"); private final String

有没有人想到什么是更好的,
EnumMap
属性
(或者至少在我的情况下?)我使用的是第三方软件包,该软件包使用以下方法在我的代码和应用程序之间进行通信:

TheirRuntime.getInstance().getParameter(String paramName)
目前,我创建了一个
enum
,其工作原理如下:

public enum MyEnum {
    FOO_BAR ("fooBar"), BAZ_QUUX ("bazQuux");

    private final String varName;
    private MyEnum(String varName) {
        this.varName = varName();
    }
    public String varName() {
        return varName();
    }
}
然后我将这些值存储在
EnumMap
中,当用户更改某些内容时,该值会更新。我的架构比这稍微复杂一些,但为了方便起见,我省略了一些细节。尽管我会提到,我用如下内容加载值:

for (MyEnum me : MyEnum.values()) {
     TheirRuntime.getInstance().getParameter(me.varName());
}
我想知道的是,使用
属性是否更有意义?这个问题之所以出现,是因为我试图构建一个完全不涉及第三方软件的测试框架,我试图找到一种好的、简单的方法来加载参数,而不使用任何第三方API调用,
属性
文件似乎是一种简单的方法,这让我想知道我是否应该在主类中使用
Properties


想法?

使用EnumMap和普通属性(这也是一个隐藏的映射)之间的主要区别在于前者将强制执行可存储在给定映射中的键的允许值,而属性将允许对这些键使用任何字符串。


Enum的好处显而易见:
它为您提供枚举文本。您可以使用它们在编译级别捕获“错误的键”问题
属性允许您灵活使用,例如,您可以从文件中读取它们
最大的问题是-您有多确定枚举提供的文本集是固定的,并且不会更改
例如,我们的系统有一组枚举值,由于我们是一个开源项目,我们希望在此基础上构建一个插件,理论上应该使用枚举值,
但是插件编写器将无法使用原始枚举,因为它有一组固定的文本,因此我们要么将枚举修改为属性对象,让插件编写器注册其“文本”
或者我们必须为我们的enum提供一个补充系统
很抱歉,我这里没有“明确”的解决方案