我是@Nonnull
注释的新手。
我尝试使用它并编写以下测试:
public class TestNonull{
public static void doSmth(@Nonnull Integer integer){}
public static void main(final String[] arguments){
doSmth(null);
doSmth(1);
}
}
我在控制台中看不到任何内容。
这是正常的吗?
答案 0 :(得分:6)
@Nonnull
和@Nullable
只是IDE或代码分析器的标记。 javac编译器不会为以这种方式注释的方法插入任何特殊代码。
答案 1 :(得分:0)
这只是IDE的注释。在调用函数之前,您应该检查参数是否为null。
就像那样:
String capitalize(@NonNull String in) {
return in.toUpperCase(); // no null check required
}
void caller(String s) {
if (s != null)
System.out.println(capitalize(s)); // preceding null check is required
}
检查 - > Using null annotations