Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数组注释为非空?_Java_Eclipse_Non Nullable - Fatal编程技术网

Java 如何将数组注释为非空?

Java 如何将数组注释为非空?,java,eclipse,non-nullable,Java,Eclipse,Non Nullable,我使用org.eclipse.jdt.annotation.NonNull为静态空分析添加额外信息。我不知道如何正确注释数组: 我怎么能说数组引用是非空的 我怎么能说数组由非空元素组成 我测试过: public static void test(@NonNull String[] a) { assert a != null; } public static void main(String[] args) { test(null);

我使用org.eclipse.jdt.annotation.NonNull为静态空分析添加额外信息。我不知道如何正确注释数组:

  • 我怎么能说数组引用是非空的
  • 我怎么能说数组由非空元素组成
  • 我测试过:

        public static void test(@NonNull String[] a) {
            assert a != null;
        }
    
        public static void main(String[] args) {
            test(null);
        }
    

    但是,Eclipse没有标记
    test(null)错误。

    如果您使用的是Java 8,则如下所示:

    @NonNull Object [] o1;
    
    o1    = null;           // OK
    o1    = new Object[1];
    o1[0] = null;           // NOT OK
    
    Object @NonNull[] o2;
    
    o2    = null;           // NOT OK
    o2    = new Object[1];
    o2[0] = null;           // OK
    
  • 我怎么能说数组引用是非空的
  • 您应该将
    @NonNull
    放在类型声明之后(但放在数组括号之前),例如

  • 我怎么能说数组由非空元素组成
  • 你最初的问题是这样的

    编辑:为了兼容性,语法必须做一些修改(相应地修改上面的代码)

    public static void test(String @NonNull[] a) {
        assert a != null;
    }