私は次のコードを持っています:
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
typeパラメーターまたはjavaIteratorがJava文字列であり、Scala文字列のリストを作成しようとしていることは理解していますが、(おそらく単純に)暗黙の変換があると思いました。