为了账号安全,请及时绑定邮箱和手机立即绑定

Java“new Type[]{...}”数组字面量初始化是什么类型的语法?

Java“new Type[]{...}”数组字面量初始化是什么类型的语法?

拉风的咖菲猫 2022-03-10 16:15:30
引起我注意但我无法向自己解释的是对这段众所周知的代码的思考:String[] str = new String[]{"a","b","c"};是new String[]演员表吗?如果是,为什么我们使用new和不使用括号?我们将转换为:float i = (float) 3;它似乎也不是构造函数,因为那样我们会像函数调用一样使用它(例如new String[](...))。那么它是一种什么样的语法,我们在 Java 中有更多这种语法吗?
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

此语法是10.6的示例。Array Initializer作为15.10.1 的一部分。数组创建表达式。

数组初始值设定项可以在字段声明(第 8.3 节、第 9.3 节)或局部变量声明(第 14.4 节)中指定,或作为数组创建表达式的一部分(第 15.10.1 节)来创建数组并提供一些初始值.

new String[]

是一个数组创建表达式,并且

{"a","b","c"}

是一个数组初始化器。

由于您的数组创建表达式中没有维度表达式(即方括号内没有任何内容),因此必须有一个数组初始值设定项:

如果没有维度表达式,则必须有一个数组初始值设定项。新分配的数组将使用数组初始化器提供的值进行初始化,如 §10.6 中所述。


查看完整回答
反对 回复 2022-03-10
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

它被称为Array Initializer,顾名思义,它的唯一目的是初始化数组。


查看完整回答
反对 回复 2022-03-10
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

语法与数组初始化器有关:

数组初始值设定项可以在字段声明(第 8.3 节、第 9.3 节)或局部变量声明(第 14.4 节)中指定,或作为数组创建表达式的一部分(第 15.10.1 节)来创建数组并提供一些初始值.

基本上,您不仅要创建数组,还要在同一条指令中初始化其所有字段。

这不是演员表。


注意代码:

String[] str = new String[]{"a","b","c"};

是创建和初始化数组的单个命令,但也可以使用不太详细的版本:

String[] str = {"a","b","c"};


查看完整回答
反对 回复 2022-03-10
  • 3 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信