1
부모 메서드에서와 마찬가지로 하위 메서드에 동일한 주석을 사용하면 컴파일러에서 확인하도록하는 방법이 있습니까? @NotNull
과 String
을 사용하면 모든 것이 정상적으로 작동합니다.@Override가 재정의 된 메서드에서 enum 주석을 사용하도록 설정하지 않았습니다.
public static final int FIRST_ENUM = 0;
public static final int SECOND_ENUM = 1;
@IntDef(value = {
FIRST_ENUM,
SECOND_ENUM
})
@Retention(RetentionPolicy.SOURCE)
public @interface MyEnum {
}
class Parent {
public void method(@MyEnum int a) {
}
}
class Child extends Parent {
@Override
public void method(int a) { // This is valid otherwise there is no @MyEnum
}
}
이 코드는 모든 주석을 덮어 쓰지는 않지만 유효합니다.
제안 해 주셔서 감사합니다.하지만 Android Studio 및 Android Studio에서 주석 검사가 필요합니다. 일부 Studio에서는 자동으로 확인합니다. 예 :'int sth = 10;''@MyEnum int num = sth;/* 오류없이 (나쁜) * /''num = sth;/* 오류 표시 (확인) * /'모든 수표가 아직 구현되지 않은 것일 수 있습니다 ... – mmrmartin
Android Studio 팀에 버그 보고서를 제출하고 수정하기를 기다립니다. 그때까지 [열거 형 검사기] (https://checkerframework.org/manual/#fenum-checker)와 같은 타사 도구를 사용할 수 있습니다. – mernst