2017-10-10 8 views
0

저는 스칼라에 익숙하지 않아 사용되지 않는 JavaConversions 라이브러리를 JavaConverters로 교체하려고합니다.스칼라 컬렉션 - 형식 변환 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이 아닙니다. 또한 스칼라 목록을 Java 목록으로 변환하는 Converters에는 asJava 메서드가 있지만 여기에서 어떻게 사용할 수 있는지 잘 모릅니다. 생각?

답변

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 –