2016-06-10 43 views
2

我不是Java程序員,但必須做一些Java工作。從一些谷歌搜索,這似乎是一個匿名的子類。但是,對象之後是「[]」。但是,然後再聲明變量是一個對象。這只是與允許一個對象數組的最通用類型(Object)相反嗎?匿名數組的子類?我認爲?不明白這個語法

Object thing = new Object[] {someInt, anotherInt, someInterface, someString}; 
+4

作爲一個sidenode,使用Object []存儲不同的類型並不是順利使用的最佳主意。 – SomeJavaGuy

+0

是的,不是我的代碼。讀別人。雖然我猜想在這種情況下,將這些值傳遞給我們是一回事,但仍然有點冒失。 – lanza

+0

@lanza我會認爲這是一個警告標誌。正如凱文所說,使用Object []'不是很流暢(這顯然是某種類),而Object的賦值只是增加了What Fudge因子。 – Kayaman

回答

6

編號數組是最終的,所以你不能繼承它們。該代碼只是創建一個對象數組Object[],並在創建時填充一些整數(自動綁定到Integer),一個接口和一個字符串。

該示例的「奇怪」一點是它將Object[]分配給Object引用。現在所有的類都擴展了Object,包括數組,所以這是有效的,但我無法想象任何情況下,如果有意使Object thing而不是Object[] thing,除非你故意不讓你的代碼變得清晰。

+0

太好了,謝謝。 '對象事物'而不是'對象[]事物'讓我感到困惑。 – lanza

+0

@lanza本週早些時候我寫了一篇[類似的問題的答案](http://stackoverflow.com/a/37696382/3788176),我認爲這可能有助於消除您對「Object」與「Object [ ]'。 –

+0

@AndyTurner很好的答案。 – Kayaman