Java 可空元素的二维非空数组
在Java8中,为了声明可空元素的二维非空数组,我应该将Java 可空元素的二维非空数组,java,java-8,annotations,nullable,type-annotation,Java,Java 8,Annotations,Nullable,Type Annotation,在Java8中,为了声明可空元素的二维非空数组,我应该将@Nullable/@NonNull类型注释放在哪里 在声明类型时(如在方法签名中),两个 @Nullable Object@NonNull[] 及 @Nullable Object@NonNull[]@NonNull[] 在语法上是有效的 同样,在定义值(零长度数组)时,我可以使用 new@Nullable对象@NonNull[0][] 或 new@Nullable Object@NonNull[0]@NonNull[] 哪个版本
@Nullable
/@NonNull
类型注释放在哪里
在声明类型时(如在方法签名中),两个
@Nullable Object@NonNull[]
及
@Nullable Object@NonNull[]@NonNull[]
在语法上是有效的
同样,在定义值(零长度数组)时,我可以使用
new@Nullable对象@NonNull[0][]
或
new@Nullable Object@NonNull[0]@NonNull[]
哪个版本正确?读取数组类型时,从括号开始向前读取,然后最后读取元素类型。例如,
Object[][]
发音为“array of array of Object”。
这有助于理解第一对括号表示最外层的数组,下一对括号表示作为最外层数组元素的所有数组
将类型注释放在对应类型的前面
以下是来自以下方面的示例:
因此,我们可以理解您的示例:
表示“可空元素(未指定)数组的非空数组”@Nullable Object@NonNull[][]
表示“可空元素的非空数组的非空数组”@Nullable Object@NonNull[]@NonNull[]
)在中查看或查看“应用类型注释”时,可以查找或强制测试它。
@Readonly Document [][] docs1 = new @Readonly Document [2][12]; // array of arrays of read-only documents
Document @Readonly [][] docs2 = new Document @Readonly [2][12]; // read-only array of arrays of documents
Document[] @Readonly [] docs3 = new Document[2] @Readonly [12]; // array of read-only arrays of documents