Java中的数组创建语法

时间:2017-10-23 02:09:32

标签: java arrays syntax

以下是Java中数组创建的语法:

ArrayCreationExpression:
new PrimitiveType DimExprs [Dims]
new ClassOrInterfaceType DimExprs [Dims]
new PrimitiveType Dims ArrayInitializer
new ClassOrInterfaceType Dims ArrayInitializer

DimExprs:
DimExpr {DimExpr}

DimExpr:
{Annotation} [ Expression ]

Dims:
{Annotation} [ ] {{Annotation} [ ]}

为什么在这里:new PrimitiveType DimExprs [Dims] Dims在括号中?如果它在括号中,那么我可以这样写:new int [2][2] [[] []]其中[2][2]DimExprs部分而[] []Dims部分。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

似乎答案出现在我的眼前但不知何故我错过了它。以下是Java规范的原因:

  

生产右侧的语法[x]表示零或   一次出现x。也就是说,x是可选符号。该   包含可选符号的替代实际上定义了两个   替代方案:一个省略可选符号,另一个包含   它

这意味着您可以撰写String[][][] s = new String[2][][];

链接:https://docs.oracle.com/javase/specs/jls/se8/html/jls-2.html#jls-2.4