Java 如何将数组注释为非空?
我使用org.eclipse.jdt.annotation.NonNull为静态空分析添加额外信息。我不知道如何正确注释数组: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);
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;
}