Scala中如何正确初始化空的util.Collection[String]类型对象
错误原因
现有代码直接将util.List[String]类类型作为值赋值给变量,Java中java.util.List是接口,无法直接实例化,因此触发"class java.util.List is not a value"编译错误。
正确初始化方案
根据实际使用场景选择对应实现:
场景1:使用不可变空集合(后续无需对集合做增删操作)
直接调用Java Collections工具类的空集合工厂方法,性能最优且无额外内存占用:import java.util.{Collections, Collection} val topicAsCollection: Collection[String] = Collections.emptyList[String]()场景2:使用可变空集合(后续需要添加/删除集合元素)
实例化java.util.ArrayList(Collection接口的标准实现类)即可:import java.util.{ArrayList, Collection} val topicAsCollection: Collection[String] = new ArrayList[String]()可选方案(Scala-Java互操作场景)
如果你项目中已经引入了Scala与Java集合的转换依赖,也可以将Scala原生空集合转为Java集合:// Scala 2.13+ 导入以下包 import scala.jdk.CollectionConverters._ // Scala 2.12及更早版本导入 import scala.collection.JavaConverters._ val topicAsCollection: java.util.Collection[String] = List.empty[String].asJava
内容的提问来源于stack exchange,提问作者Eljah
相关产品推荐
相关产品推荐

