回答
{3,4,5}
的類型不明確(可能是int[]
,short[]
,等)。請嘗試:
draw(new int[]{3,4,5});
因爲{3,4,5}
不是數組。 (如果是的話,那麼的數組是什麼?)
{3,4,5}
並不反映是什麼類型。你應該這樣調用draw(new int[]{3,4,5});
因爲Java是不是matlab的!您必須先創建/註冊一個數組,然後才能通過!
您也必須在Matlab中創建數組; Matlab只是具有更簡潔的語法。 – 2012-02-10 08:20:24
你可以傳遞這樣:draw(new int[]{3,4,5})
。
需要稱其爲draw(new int[]{3,4,5})
{3,4,5}是一個數組初始化方法,而前述new int[]
這沒有任何意義。您可以查看{3,4,5}作爲參數傳遞給一個名爲int[]
函數返回你一個新的數組。
數組通過引用傳遞。通過按引用意味着當一個陣列被作爲參數傳遞,它的存儲器地址位置實際傳遞,被稱爲其「參考」。
- {3,4,5}並未反映您要使用哪種類型。
- 如果你想通過數組,你應該這樣調用平局(新INT [] {3,4,5});所以方法可以知道你要使用數組。
看到其他ansers,爲什麼像你嘗試,你不能做到這一點。
但是你可以做這樣的事情:
draw(int... a)
{
//...
}
draw(3,4,5);
是的,這也是我的首選方式,因爲你仍然可以通過「正常」的陣營。 – Axel 2012-02-10 07:29:11
我想給這裏的一些其他的答案迴應。這是一種語言設計選擇,不支持數組創建的語法。但可能不是因爲這個構造總是含糊不清。只是說{3,4,5}
是「模棱兩可」或「不反映類型」是一個過於簡單化。
使用數組初始值表達式作爲數組創建的簡寫可能存在模糊性,但它不是來自簡單的例子,如{3,4,5}
。您可以使用類型提升規則來定義一個規則,以便明確確定像{x,y,z}
這樣的數組初始值設定項的類型,就像使用類型提升規則確定算術表達式的類型(如x+y+z
)一樣。那麼{3,4,5}
在int[]
或short[]
在這個假設的情況下?這將是int[]
,因爲3
,4
和5
是整數。
即使沒有接口的對象,也可以說{x,y,z,...}
的類型是所有數組元素表達式可指定的最具體的通用超類。最低的共同點,如果你願意。
但是通過接口,你實際上有多重繼承,所以你可能有多個超類型,數組中的所有元素都可以指定給它們,但這兩個超類型都不能相互賦值,所以你有一個真正的不明確性。
而零元素的情況下,{}
,現在這是不明確的。
語言設計者可能提供了一個規則說「對自己的數組初始化表達式像new T[]{...}
用於初始化的類型處理」。即使使用接口,他們也可以提供它並加上「......在類型明確的情況下,否則就是編譯錯誤」。但他們沒有。也許是因爲他們不想讓模糊不清。也許是因爲類型確定規則對編譯器或開發人員而言會變得複雜。也許是因爲他們不想在堆上分配一堆小陣列。但不是因爲{3,4,5}
根本無法解釋。
- 1. Java String intToStr =「」+ 5;爲什麼我不能這樣做?
- 2. 通用返回類型 - 爲什麼我不能這樣做?
- 3. 爲什麼我不能在foreach中使用這樣的添加?
- 4. CSS中的浮動元素。爲什麼我不能這樣做?
- 5. 爲什麼我不能這樣做我的參數?
- 6. 爲什麼我不能通過1添加這個int?
- 7. 爲什麼我不能打印我的2D陣列?
- 8. VB.NET:爲什麼不能這樣工作?
- 9. 爲什麼不能我們通過與陣列的功能,其中與數組[0]可能
- 10. java的,「這樣做,如果通過,那麼這樣做」
- 11. 爲什麼我不能比較這樣的兩個原子?
- 12. 爲什麼我不能使用這樣的結構?
- 13. 爲什麼我不能專注於這樣的錨點?
- 14. 爲什麼我不能讓$ .whatever()這樣的jQuery調用?
- 15. 爲什麼我不能在這樣的QMap上調用插入?
- 16. 爲什麼不是這個BASH陣列?
- 17. 在Python中,爲什麼我不能這樣做:import A; ABCfoo()
- 18. 這是什麼樣的? - Java
- 19. 爲什麼我不能在我的Python shell中執行這樣的代碼?
- 20. 爲什麼我不能在Java中像這樣構造字符串數組?
- 21. 爲什麼我不能通過這種方式迭代列表清單?
- 22. 爲什麼我們不這樣改變?
- 23. 爲什麼我們通過「這」在ko.computed
- 24. 爲什麼不這樣做的代碼什麼我希望
- 25. 爲什麼我不能通過列表理解索引數組?
- 26. 爲什麼不這樣做?
- 27. 爲什麼我不能通過我的參數python
- 28. 爲什麼我的比較陣列不能工作?
- 29. 爲什麼我不能在Java中
- 30. 爲什麼我的測試不通過?
這裏是參考:http://stackoverflow.com/questions/1610757/pass-array-to-method-java,可以幫助你http://www.jforeach.com/difference-between-object-and- reference-in-java/62 – 2012-02-10 05:36:13