【问题标题】:Array creation syntax in JavaJava中的数组创建语法
【发布时间】:2017-10-23 02:09:32
【问题描述】:

以下是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 arrays syntax


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      相关资源
      最近更新 更多