2013-07-23 1 views

답변

2

스칼라 컬렉션 패키지의 변환기 메서드를 사용하십시오. 블라디미르 Matveev이

wantedList=oldList.map(_.asScala) 
+3

전체 방향 ('JavaConverters'의 사용법)은 정확 합니다만, 목록에서이 메소드를 호출하는 것이 아니라'asScala'를 사용하여리스트를 통해 매핑해야합니다 :'oldList.map (_ .asScala)' –

0

을 언급 당신은 scala.collection.JavaConversions 정적 인 방법을 사용할 수 있기

:

import scala.collection.JavaConverters._ 

oldList: List[java.util.Map[String,String]] 

wantedList= oldList.asScala 

편집 : 이것은 변환하는 방법을 보여주는 샘플입니다. 이것은 표준 자바 컬렉션에서 암시 적 변환을 추가하고이 같은 일을 수행 할 수 있습니다 (의 우리가 이미 scala.collection.JavaConversions._을 REPL을 열어 가져온 가정하자) :

scala > x 
res1: java.util.HashMap[String,String] = {1=2} 

scala> x.toMap 
res2: scala.collection.immutable.Map[String,String] = Map(1 -> 2) 

당신은 다음과 같은 특정 문제를 해결할 수 :

res5: list: List[java.util.HashMap[String, String]] =() 
scala > list.map(e => e.toMap) 
res6: List[scala.collection.immutable.Map[String,String]] =() 
0

JavaConverters는 Scala 2.9.0부터 사용되지 않고 Scala 2.11-M1에서 제거되었으므로을 사용하면 안됩니다. 대신 WrapAsScala 모듈을 가진 scala.collection.convert 패키지가 있습니다. 그것은 암시 적 변환을 가지고 있습니다. dictionaryAsScalaMap

+0

'JavaConverters'의 일부 멤버는 비추천되었지만'JavaConverters'는 일반적으로 * 사용되지 않습니다 *. – sourcedelica

+0

@sourcedelica [JavaConverters] (https://github.com/scala/scala/blob/v2.10.0/src/library/scala/collection/JavaConverters.scala) 모든 멤버는 더 이상 사용되지 않습니다. – 4lex1v

+0

내부 멤버는 deprecated하지만'DecorateAsJava'와'DecorateAsScala'에서 상속받은 것은 없습니다. 'JavaConverters'' 객체 자체는 아니었고,'import JavaConverters._'는 이전처럼 작동합니다. 예 : 당신은'jmap.asScala'을 할 수 있습니다. – sourcedelica