我有以下代码:
private lazy val keys: List[String] = obj.getKeys().asScala.toList
obj.getKeys
返回一个java.util.Iterator<java.lang.String>
根据文档调用asScala
,通过(导入)..JavaConverers
java.util.Iterator <==> scala.collection.Iterator
scala.collection.Iterator
定义
def toList: List[A]
因此,基于此,我认为这应该可行,但是这是编译错误:
[scalac] <file>.scala:11: error: type mismatch;
[scalac] found : List[?0] where type ?0
[scalac] required: List[String]
[scalac] private lazy val keys : List[String] = obj.getKeys().asScala.toList
[scalac] one error found
我了解类型参数或 java Iterator 是一个 Java 字符串,并且我正在尝试创建一个 Scala 字符串列表,但是(也许天真地)认为会有一个隐式转换。