有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java@Nonnull注释是唯一的标记?

我不熟悉@Nonnull注释

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

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

我在控制台里什么也没看到

这正常吗


共 (2) 个答案

  1. # 1 楼答案

    @Nonnull@Nullable只是IDE或代码分析器的标记。javac编译器不会为以这种方式注释的方法插入任何特殊代码

  2. # 2 楼答案

    这只是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