当我在 scala 中写的时候
val data: java.util.List[java.util.List[Double]] = new java.util.ArrayList[java.util.ArrayList[Double]]()
我收到错误
Expression of type util.ArrayList[util.ArrayList[Double]] does not conform to expected type util.List[util.List[Double]]
我做错了什么?
最佳答案
您应该使用val data: java.util.List[java.util.List[Double]] = new java.util.ArrayList[java.util.List[Double]]()
因为泛型类型在 Java 中不是多态的。请参阅this
您还可以编写以下内容来明确类型:
val data: java.util.List[? extends java.util.List[Double]] = new java.util.ArrayList[java.util.ArrayList[Double]]()
简单易懂List<A>
不是super
的List<B>
即使B extends A
.
关于java - 使用 Java ArrayList 在 Scala 中初始化 Java 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47310763/