【发布时间】:2012-11-13 04:34:44
【问题描述】:
我正在编写一个实现(包装)java.util.List 的 Scala 类,即:
class MyList(backingList: java.util.List) extends java.util.List
后者有一个带有 Java 签名的 toArray 方法,如下所示:
<T> T[] toArray(T[] a)
天真地,我写成这样:
def toArray[T](a: Array[T]) = backingList toArray a
但编译器抱怨在 backingList 上对 toArray 的调用需要 Array[? with java.lang.Object]。
我想我已经尝试了所有可能的变化,比如Array[_ >: T with Object](编译器好心建议),但没有运气。有什么建议吗?
【问题讨论】:
-
不是您问题的答案,但您知道
JavaConversions/JavaConverters中已经存在这样的包装器? +1 顺便说一句。 -
我知道,但这是在 JavaFX 的
ObservableList(扩展 java.util.List)的上下文中。