小编the*_*vpc的帖子

从 Scala 调用 Java 通用类型化方法会出现类型不匹配错误:Scala

这是我在这里的第一个问题,所以我会尽量说清楚。error: type mismatch;此处的其他问题与此错误无关。

我在 scala/java 互操作性方面遇到了这个奇怪的问题:

假设我们有一个 Java 类

public class JavaClass{
  public static <T> T[] toArray(Class<T> t, Collection<T> coll) {
    return null; // return null to make it simple
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我有另一个 Scala 类,我只想将此方法包装在:

object ScalaClass{
  def toArray[T](t: java.lang.Class[T], coll: java.util.Collection[T]): Array[T] = {
    JavaClass.toArray[T](t, coll);
  }
}
Run Code Online (Sandbox Code Playgroud)

编译 Scala 类给了我一个非常奇怪的错误:

error: type mismatch;
Run Code Online (Sandbox Code Playgroud)

任何想法表示赞赏。

编辑 1:完整的错误消息是

[ERROR] ScalaScala.scala:4002: error: type mismatch;
[INFO]  found   : Array[T]
[INFO]  required: Class[T]
[INFO]  JavaClass.toArray[T](t, coll);
[INFO]                      ^
Run Code Online (Sandbox Code Playgroud)

java generics scala scala-java-interop

7
推荐指数
1
解决办法
224
查看次数

标签 统计

generics ×1

java ×1

scala ×1

scala-java-interop ×1