我正在编写一个实现(包装)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[?使用 java.lang.Object]
。
我想我已经尝试了所有可能的变体,例如 Array[_ >: T with Object]
(编译器友善地建议),但没有成功。有什么建议吗?
最佳答案
这也有效:
def toArray[T](a: Array[T with Object]) = backingList.toArray[T](a)
关于java - 在 Scala 中委托(delegate) java.util.List#toArray(T[] a),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13351026/