java - 在 Scala 中委托(delegate) java.util.List#toArray(T[] a)

标签 java scala

我正在编写一个实现(包装)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/

相关文章:

java - 尝试检查输入是否为整数时出现 java.lang.NullPointerException

java - setVisible 和 requestFocus on textField

scala - 集群中参与者之间的 Akka 和状态

带有 scala setAdapter InvocationTargetException 的 Android

scala - 是否可以在游戏功能测试中模拟数据库连接以及如何?

scala - 为什么scala中for循环的每次迭代参数是val而不是var

java - 终结符和非终结符

java - 无法从 Google 的 IAB 框架捕获 IllegalStateException

java - 如何在 Android 中更改全局变量

html - scalatags JsDom 与 Text