2017-10-10 3 views
0

私はScalaを初めて使用しており、廃止予定のJavaConversionsライブラリをJavaConvertersに置き換えようとしています。Scalaコレクション - 型キャストAny to Seq [T]コンバーターを使用

addresses = { 
     import scala.collection.JavaConversions._ 
     config.getConfigList("amqp.addresses").map(address ⇒ 
     Address(
      host = address.foo() 
     ))(collection.breakOut) 
} 

私は上記のコードでJavaConvertorsJavaConversionsを交換するとき、私はコンパイルエラーを取得:

Type mismatch: expected Seq[Address], actual: Any 

私は例外が何を意味するかを理解し、私はないです元のコードは次のようになります上記のコードをどのように変換できるかはSeq[Address]であり、Anyではありません。また、コンバータにはasJavaメソッドがあり、スカラーリストをJavaリストに変換しますが、ここでどのように使用できるかはわかりません。思考?あなたは、最終的なタイプを述べると、明示的にJavaのコレクションはScalaの1に変換する必要があるだろう

答えて

2

asScala):

addresses: Seq[Address] = { 
     import scala.collection.JavaConverters._ 
     config.getConfigList("amqp.addresses").asScala.map(address ⇒ 
     Address(
      host = address.foo() 
     ))(collection.breakOut) 
} 
+0

感謝!それは動作します。私はConvertersライブラリに関する関連する質問がありますが、私はそれを清潔に保つために新しいスレッドをオープンしました:https://stackoverflow.com/questions/46673632/scala-collections-util-mapstring-anyref-mapstring-string –

関連する問題