gpt4 book ai didi

Java:为什么不能在没有新运算符的情况下使用 {..} 返回数组?

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:17 25 4
gpt4 key购买 nike

我在网站上搜索了很多,但没有找到任何相关问题。所以我相信它不是重复的。

我知道我们可以用 3 种方式初始化一个数组:

  • char[ ] charAr=new char[10];
  • char[ ] charAr={'a', 'b', 'c'};
  • char[ ] charAr=new char[]{'a','b','c'};

第一个问题是:{'a','b','c'} 这类东西的名称是什么?是不是叫数组字面量?

第二个问题是:new char[]{'a','b','c'}{'a','b',' 有什么区别c'}?

第三个问题是:为什么我不能用 {'a','b','c'} 返回新创建的数组?我必须返回 new char[]{'a','b','c'}

第四题:new char[10]new char[]{'a','b','c'}都是数组的构造函数,对吧?

最佳答案

在声明中:

char[ ] charAr={'a', 'b', 'c'};

数组 {'a', 'b', 'c'} 称为数组初始化器。在 Section 10.6 of the Java Language Specification 中进行了描述.它只能这样写(前面没有 new char[])作为变量声明的一部分。

在任何其他地方(包括return 语句),您需要使用数组创建表达式。这些在 Section 15.10 of the JLS 中有描述。 .您可以使用数组初始值设定项或数组创建表达式在声明变量时对其进行初始化。这就是为什么当您声明变量时 new char[] 似乎是可选的。

关于您的第 4 个 问题:它们在技术上不是“构造函数”(在 Java 术语中具有特定含义)但是是的,它们都构造数组(或者,也许更准确地说,它们都创建数组)。

关于Java:为什么不能在没有新运算符的情况下使用 {..} 返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20394106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com