簡體   English   中英

將文字數組指定給對象變量

[英]Assign literal array to object variable

請考慮以下代碼:

Object obj = {};

這會導致以下錯誤:

Type mismatch: cannot convert from Object[] to Object

但是,根據Java標准, 每個Array都是一個Object

在Java編程語言中,數組是對象(§4.3.1),是動態創建的,可以分配給Object類型的變量(§4.3.2)。 可以在數組上調用Object類的所有方法。

除此之外,以下代碼段編譯沒有任何問題:

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

問題:我在第一個代碼示例中缺少什么,即為什么它不是有效的?

PS:我幾乎肯定有人已經問過這個問題了,因為它看起來很基本。 但是,我既沒有在谷歌也沒有找到任何有用的結果(也許是因為在搜索中忽略了方括號?)。 如果有重復,我錯過了,那么請隨時關閉我的問題。 為了記錄,我檢查了以下問題。 雖然他們的頭銜似乎很有希望,但他們都處理其他類型的問題,或者沒有包含我的問題的答案:

內聯數組初始化只能用於數組類型聲明 - 它是語言語法的一部分。

在java 8中,這一行

Object o = {};

不會給出您報告的編譯錯誤。 相反,它給出:

這里不允許使用數組初始化程序

數組初始值設定項只能顯示為數組的初始值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM