我正在使用Spigot(Minecraft)进行插件,我使用枚举来存储消息/语言以及特定事物的状态。 问题是状态枚举取决于消息枚举。消息枚举取决于文件messages.yml。 我知道如何重新加载该文件,但是当我这样做时,如果我更改文件messages.yml中的翻译,则更新发送的消息,但状态枚举中存储的状态消息不会更新。
因此,我想知道是否可以删除枚举的实例并再次生成以更新它们的值,就像重新加载插件时一样。
public enum Message {
WAITING("Status.Waiting");
private String path;
Message(String path) {
this.path = path;
}
public String getMessage() {
return file.getString(path);
}
}
public enum Status {
WAITING(Message.WAITING.getMessage());
private String name;
Status(String name) {
this.name = name;
}
public getName() {
return name;
}
}
请不要回答我可以放置WAITING(Message.WAITING)并执行将执行name.getMessage();的Status.WAITING.getName()。我把这段代码写成一个例子,我的函数不使用getName()函数,只使用枚举的值,所以名字写在消息枚举中。
如果有人解决此问题,请提前致谢。 :)
答案 0 :(得分:0)
您无法添加/删除enum
,因为其他代码中引用了enum
。这与删除变量foo
的所有痕迹然后尝试调用foo + 1
如果要重新加载消息文件,可以执行file.reloadConfig(),它将从磁盘重新加载消息,然后在调用getMessage()时,它将在较新的文件中查找较新的消息。 / p>