저는 Spigot (Minecraft)로 플러그인을 만들고 있는데 enum을 사용하여 메시지/언어 및 특정 항목의 상태를 저장합니다. 문제는 메시지 열거 형에 따라 상태 열거 형이 달라집니다. 그리고 메시지 열거 형은 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;
}
}
내가 name.getMessage 할 것 Status.WAITING.getName을()() 대기 (Message.WAITING)를 넣고 할 수있는 대답하지 마십시오 ;. 이 코드를 예제로 썼습니다. 함수는 getName() 함수를 사용하지 않고 열거 형의 값만 사용하므로 메시지 열거 형에 이름이 기록됩니다.
아무도이 문제를 해결하면 미리 감사드립니다. :)
실제로 열거 형을 사용해야합니까? 예를 들어, – Kerooker
과 같이 모든 메시지에 게터를 사용하여 맵에 저장하고 저장할 수 있습니다. 'enums'는 메시지를 저장하는 좋은 아이디어처럼 들릴 수 있지만 실제로는 그렇지 않습니다. 열거 형은 다시로드되도록 설계되지 않았으며 상수로 설계되었으므로 함께 배치 한 해킹은 그만한 가치가 없습니다. 필자가 권장하는 것은 파일에서 직접 메시지를받는 것입니다. –