我是Scala的新手,目前在一個涉及Java和Scala模塊的項目上工作。現在我想使用byte []類型的參數從Java調用Scala方法。如何將Java字節數組轉換爲Scala字節數組?
斯卡拉方法有簽名:def foo(data: Array[Byte])
的Java調用看起來像這樣:foo(x)
,其中x的類型byte[]
。
IDE將告訴我它不可能的:
The method foo(Array) in the type Bar is not applicable for the arguments (byte[])
作爲附加約束,不優選改變Scala的方法。在Java方面,我嘗試使用Byte[]
,但這並沒有解決問題。必須存在一些轉換?
你在用什麼IDE? Intellij沒有問題。 – sourcedelica 2011-06-04 16:06:31
你使用2.8或更高版本? 'Array [Byte]'_is_'byte []'從2.8開始,所以如果你的IDE抱怨你的IDE是錯誤的。 – 2011-06-04 16:17:51
我正在使用Eclipse Helios 3.6.2並安裝了用於Eclipse 2.0.0-beta4的Scala IDE。該項目是在Maven模塊中組織的,其中Scala和Java模塊都包含scala-library-2.9.0作爲Maven依賴項。我注意到Scala IDE有時會做一些奇怪的事情 - 比如在包資源管理器中顯示想象中的警告和錯誤,但通常清理和重建項目會有所幫助(我已經嘗試過這種情況)。 – mtsz 2011-06-04 16:27:43