我正在尝试使用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;
}
}