문제

다음 열거형이 있습니다.

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 메소드이므로 모든 클래스가 이를 갖습니다. 즉, 강제로 적용할 수 없습니다!다른 열거형은 다른 초기화를 가질 수 있으므로 생성자를 적용하는 값을 볼 수 없습니다.

친절한 감사

  1. 인터페이스에서는 정적 메서드를 정의할 수 없습니다.
  2. 인터페이스에서는 생성자를 정의할 수 없습니다.
  3. toString 에 정의되어 있습니다 java.lang.Object, 인터페이스에서 이를 요구하면 메서드가 정의되지 않은 경우 컴파일 오류가 발생하지 않습니다.

어쨌든 생성자를 시행하려는 이유는 무엇입니까?새 인스턴스를 생성할 수 없습니다. enum어쨌든 런타임에 실행됩니다(일부 리플렉션 메커니즘을 통하지 않는 한).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top