将文字数组指定给对象变量

时间:2016-05-21 10:36:31

标签: java arrays

请考虑以下代码:

Object obj = {};

这会导致以下错误:

Type mismatch: cannot convert from Object[] to Object

但是,根据Java标准every Array is an Object

  

在Java编程语言中,数组是对象(§4.3.1),是动态创建的,可以分配给Object类型的变量(§4.3.2)。可以在数组上调用Object类的所有方法。

除此之外,以下代码段编译没有任何问题:

Object [] arr = {};
Object obj = arr;

问题:我在第一个代码示例中遗漏了什么,即为什么它无效?

P.S。:我几乎肯定有人已经问过这个问题,因为它看起来很基本。但是,我既没有在谷歌也没有找到任何有用的结果(也许是因为在搜索中忽略了方括号?)。如果有重复,我错过了,那么请随时关闭我的问题。 为了记录,我检查了以下问题。虽然他们的头衔似乎很有希望,但他们都处理其他类型的问题,或者没有包含我的问题的答案:

1 个答案:

答案 0 :(得分:0)

内联数组初始化只能用于数组类型声明 - 它是语言语法的一部分。

在java 8中,这一行

Object o = {};

不会给出您报告的编译错误。相反,它给出了:

  

此处不允许使用数组初始化程序

数组初始值设定项只能 显示为数组的初始值