猿问

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

引起我注意但我无法向自己解释的是对这段众所周知的代码的思考:

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

new String[]演员表吗?如果是,为什么我们使用new和不使用括号?我们将转换为:

float i = (float) 3;

它似乎也不是构造函数,因为那样我们会像函数调用一样使用它(例如new String[](...))。

那么它是一种什么样的语法,我们在 Java 中有更多这种语法吗?


拉风的咖菲猫
浏览 168回答 3
3回答

慕后森

此语法是10.6的示例。Array Initializer作为15.10.1 的一部分。数组创建表达式。数组初始值设定项可以在字段声明(第 8.3 节、第 9.3 节)或局部变量声明(第 14.4 节)中指定,或作为数组创建表达式的一部分(第 15.10.1 节)来创建数组并提供一些初始值.new String[]是一个数组创建表达式,并且{"a","b","c"}是一个数组初始化器。由于您的数组创建表达式中没有维度表达式(即方括号内没有任何内容),因此必须有一个数组初始值设定项:如果没有维度表达式,则必须有一个数组初始值设定项。新分配的数组将使用数组初始化器提供的值进行初始化,如 §10.6 中所述。

收到一只叮咚

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

红颜莎娜

语法与数组初始化器有关:数组初始值设定项可以在字段声明(第 8.3 节、第 9.3 节)或局部变量声明(第 14.4 节)中指定,或作为数组创建表达式的一部分(第 15.10.1 节)来创建数组并提供一些初始值.基本上,您不仅要创建数组,还要在同一条指令中初始化其所有字段。这不是演员表。注意代码:String[] str = new String[]{"a","b","c"};是创建和初始化数组的单个命令,但也可以使用不太详细的版本:String[] str = {"a","b","c"};
随时随地看视频慕课网APP

相关分类

Java
我要回答