如何为数组添加NonNull注解?

13

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

  1. 如何说明数组引用是非空的?
  2. 如何说明数组由非空元素组成?

我已经进行了测试:

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

    public static void main(String[] args) {
        test(null);
    }

然而,Eclipse并没有将test(null);标记为错误。

2个回答

15
如果您使用的是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

5
  1. 如何表达数组引用非空?

在类型声明之后(但是在数组括号之前)应该加上@NonNull,例如:

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

我该如何表达一个数组由非空元素组成?
你的原始问题已经包含了这个信息。
编辑:为了与Java 8兼容,语法必须进行一些修改(以上代码已做出修改)。请参阅 Java 8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接