我正在用的插头(我的世界)一个插件,我用枚举来存储邮件/语言,也具体的事情地位。 问题是状态枚举取决于消息枚举。消息枚举依赖于文件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),做Status.WAITING.getName(),会做name.getMessage();.我写这段代码作为例子,我的函数不使用getName()函数,只是enum的值,所以名称写在消息枚举中。
如果有人解决这个问题,请提前致谢。 :)
为什么你真的需要使用枚举?你可以在所有消息中使用带getters的类,它们会在你的配置文件中找到并存储在地图中,例如 – Kerooker
虽然'enums'可能听起来像是储存消息的好主意,但事实并非如此。枚举并不是为了重新加载而设计的,它们被设计成常量,所以任何黑客你放在一起都不值得花费。我推荐的是直接从文件中获取消息。 –