У меня есть следующий код:
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, но (возможно, наивно) подумал, что будет неявное преобразование.