[英]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.