Ver*_*tex 5 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);
}
Run Code Online (Sandbox Code Playgroud)
但是,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
Run Code Online (Sandbox Code Playgroud)
- 我怎么能说数组引用非空呢?
您应该放在类型声明@NonNull 之后(但在数组括号之前),例如,
public static void test(String @NonNull[] a) {
assert a != null;
}
Run Code Online (Sandbox Code Playgroud)
- 我怎么能说数组由非空元素组成呢?
你原来的问题就是这样。
编辑:为了兼容Java 8,必须稍微更改语法(相应修改上面的代码)。