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