1
是否有辦法強制編譯器檢查是否在父方法中使用了與child方法相同的註釋。如果我使用@NotNull
和String
一切都按我的預期工作。@Override不強制在重寫的方法中使用枚舉註釋
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會自動進行一些檢查。例如'int sth = 10;''@MyEnum int num = sth;/*沒有錯誤(壞)* /''num = sth;/*錯誤顯示(ok)* /'也許所有檢查尚未執行... – mmrmartin
您可以向Android Studio團隊提交錯誤報告並等待他們解決。在此之前,您可以使用第三方工具,如[Enum Checker](https://checkerframework.org/manual/#fenum-checker)。 – mernst