그러한 열거형에 대한 인터페이스를 구축하는 방법
문제
다음 열거형이 있습니다.
public enum Status implements StringEnum{
ONLINE("on"),OFFLINE("off");
private String status = null;
private Status(String status) {
this.status = status;
}
public String toString() {
return this.status;
}
public static Status find(String value) {
for(Status status : Status.values()) {
if(status.toString().equals(value)) {
return status;
}
}
throw new IllegalArgumentException("Unknown value: " + value );
}
}
모든 열거형에 find(), toString() 및 생성자가 있는지 확인하기 위해 StringEnum 인터페이스를 구축할 수 있습니까?
감사해요.
해결책
인터페이스에서는 생성자나 정적 메서드를 지정할 수 없습니다.훌륭하고 간결한 설명을 보려면 다음 기사를 확인하세요. 인터페이스에 정적 메서드가 없습니다.
다른 팁
열거형에는 이미 가치() (찾기 방법) 방법.그리고 "toString()"은 java.lang.Object 메소드이므로 모든 클래스가 이를 갖습니다. 즉, 강제로 적용할 수 없습니다!다른 열거형은 다른 초기화를 가질 수 있으므로 생성자를 적용하는 값을 볼 수 없습니다.
친절한 감사
- 인터페이스에서는 정적 메서드를 정의할 수 없습니다.
- 인터페이스에서는 생성자를 정의할 수 없습니다.
toString
에 정의되어 있습니다java.lang.Object
, 인터페이스에서 이를 요구하면 메서드가 정의되지 않은 경우 컴파일 오류가 발생하지 않습니다.
어쨌든 생성자를 시행하려는 이유는 무엇입니까?새 인스턴스를 생성할 수 없습니다. enum
어쨌든 런타임에 실행됩니다(일부 리플렉션 메커니즘을 통하지 않는 한).
제휴하지 않습니다 StackOverflow