我正在尝试使用 Eclipse NonNull 注释,但是我无法理解下面描述的行为。我不明白 Eclipse 在抱怨什么......
Compiles/Eclipse 不会抱怨任何事情:
import org.eclipse.jdt.annotation.NonNull;
public class NonNullStaticInnerClasses {
public static class NonNull1{
protected String nonNullString;
public void setNonNullString(@NonNull String nonNullString){
this.nonNullString = nonNullString;
}
}
public static class NonNull2 extends NonNullStaticInnerClasses.NonNull1 {
public void setNonNullString(@NonNull String nonNullString){
this.nonNullString = nonNullString;
}
}
}
Eclipse 抱怨“非法重新定义参数 nonNullString,从 NonNull1 继承的方法不限制此参数”但编译/运行良好:
import org.eclipse.jdt.annotation.NonNull;
public class NonNull1{
protected String nonNullString;
public void setNonNullString(@NonNull String nonNullString){
this.nonNullString = nonNullString;
}
}
public class NonNull2 extends NonNull1 {
public void setNonNullString(@NonNull String nonNullString){
this.nonNullString = nonNullString;
}
}