java - 使用 Java ArrayList 在 Scala 中初始化 Java 列表

标签 java scala type-conversion

当我在 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>不是superList<B>即使B extends A .

关于java - 使用 Java ArrayList 在 Scala 中初始化 Java 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47310763/

相关文章:

java - Scala 12.x 和 Java 11 `String.lines`,如何在链式调用中强制隐式转换?

java - 在 Scala 中覆盖 ArrayBuffer.contains() 方法

java - 阴影的概念

scala - Scala案例类扩展了具有可序列化的产品

c++ - 使用类型转换运算符

postgresql - 在 PostGIS 中将几何隐式转换为 WKT 字符串

date - 如何在 Hive 中将 ISO 日期转换为 UTC 日期

java - 浏览屏幕 android 开发

java - 从 Android 中的自定义对象动态更新 textView

visualvm - 如何获取加载到内存中的对象的信息