Java API中定義的方法:有麻煩java.util.Collection中的#創建斯卡拉代表指定者
interface Collection<T> {
<X> X[] toArray(X[] a);
}
我試圖做這樣的事情在斯卡拉:
class SCollection[T] extends Collection[T] {
val queue = new LinkedBlockingQueue[T]
def toArray[X](a: Array[X]) : Array[X] = queue.toArray(a)
}
我爲了清楚起見,在界面中省略了其他方法。編譯器抱怨:
overloaded method value toArray with alternatives:
[T](x$1: Array[T with java.lang.Object])Array[T with java.lang.Object] <and>
()Array[java.lang.Object]
cannot be applied to (Array[X])
def toArray[X](a: Array[X]) : Array[X] = queue.toArray(a)
^
如何成功覆蓋toArray(..)方法?
這只是產生一個不同的編譯器錯誤:類型'Array [X with AnyRef]'的表達式不符合期望的類型'Array [X]' – 2014-03-10 06:46:51