如何更有效地使用@Nullable和@Nonnull注释?
2022-08-31 07:04:50
我可以看到这一点,注释可能有助于防止s,但它们不会传播得很远。@Nullable
@Nonnull
NullPointerException
- 这些注释的有效性在一个间接寻址级别后完全下降,因此,如果只添加几个注释,它们不会传播得很远。
- 由于这些注释没有得到很好的执行,因此存在假设标记为 not null 的值的危险,因此不会执行 null 检查。
@Nonnull
下面的代码会导致标记为 be 的参数不会引起任何投诉。它在运行时会抛出 a。@Nonnull
null
NullPointerException
public class Clazz {
public static void main(String[] args){
Clazz clazz = new Clazz();
// this line raises a complaint with the IDE (IntelliJ 11)
clazz.directPathToA(null);
// this line does not
clazz.indirectPathToA(null);
}
public void indirectPathToA(Integer y){
directPathToA(y);
}
public void directPathToA(@Nonnull Integer x){
x.toString(); // do stuff to x
}
}
有没有办法使这些注释更严格地执行和/或进一步传播?