@Nonnull注释只是标记?

时间:2014-01-09 12:07:38

标签: java null guava

我是@Nonnull注释的新手。

我尝试使用它并编写以下测试:

public class TestNonull{
    public static void doSmth(@Nonnull Integer integer){}
    public static void main(final String[] arguments){
       doSmth(null);
       doSmth(1);
    }
}

我在控制台中看不到任何内容。

这是正常的吗?

2 个答案:

答案 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