[英]Array creation syntax in Java
这是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
部分。 我在这做错了什么?
似乎答案是在我眼前,但不知怎的,我错过了它。 以下是Java规范的原因:
生产右侧的语法[x]表示零或一次出现x。 也就是说,x是可选符号。 包含可选符号的替代方法实际上定义了两种选择:一种省略可选符号,另一种包含它。
这意味着您可以编写String[][][] s = new String[2][][];
链接: https : //docs.oracle.com/javase/specs/jls/se8/html/jls-2.html#jls-2.4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.