Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个枚举,我可以';t modify并希望向其添加更多属性_Java_Enums - Fatal编程技术网

Java 我有一个枚举,我可以';t modify并希望向其添加更多属性

Java 我有一个枚举,我可以';t modify并希望向其添加更多属性,java,enums,Java,Enums,我有一个enum public enum { first("prop1", "prop2"), second("prop1", "prop2") } public enum { first("prop1", "prop2", "prop3"), second("prop1", "prop2", "prop3") } 我不能修改上面的课程 现在我想向同一个enum public enum { first("prop1", "prop2"), second("prop1", "prop2") }

我有一个
enum

public enum {
first("prop1", "prop2"), second("prop1", "prop2")
}
public enum {
first("prop1", "prop2", "prop3"), second("prop1", "prop2", "prop3")
}
我不能修改上面的课程

现在我想向同一个
enum

public enum {
first("prop1", "prop2"), second("prop1", "prop2")
}
public enum {
first("prop1", "prop2", "prop3"), second("prop1", "prop2", "prop3")
}

如何做到这一点?

希望这就是你所需要的

public enum {
first("prop1", "prop2", "prop3"), second("prop1", "prop2", "prop3"), third("prop1", "prop2", "prop3")

}

添加属性需要修改。如果无法修改
枚举
,则无法向该
枚举
添加属性

如果要将新属性与无法修改的旧
枚举关联,可以使用:

public enum TestEnum {
    first("prop1", "prop2"), second("prop1", "prop2")
}
...
EnumMap<TestEnum,String> prop3 = new EnumMap<TestEnum,String>(TestEnum.class);
prop3.put(TestEnum.first, "FirstProp3");
prop3.put(TestEnum.second, "SecondProp3");
你需要写作

TestEnum tst = ...
String p3 = prop3.get(tst);

您可以做的是添加一个EnumMap。这不会修改原始类,但允许您指定其他属性

static final Map<MyEnum, String> prop3 = EnumMap.of(MyEnum.class);
static {
    prop3.put(first, "prop3");
    prop3.put(second, "prop3");
}

您想修改一个类而不修改它吗?我想使用前面的类/枚举向它添加更多属性如果我理解正确,OP想向现有枚举添加第三个属性参数,而不是添加第三个枚举值。@KevinCruijssen谢谢您的评论,但您为什么这么认为?OP没有充分澄清其问题,以明确他想要什么。在这种情况下,你没有正确理解它,因此是错误的。