Java List에서 Scala List를 가져오려면 어떻게 해야 하나요?
다음과 같은 목록을 반환하는 Java API가 있습니다.
public List<?> getByXPath(String xpathExpr)
아래의 스칼라 코드를 사용하고 있습니다.
val lst = node.getByXPath(xpath)
scala 구문설탕을 사용해 보겠습니다.
lst.foreach{ node => ... }
동작하지 않습니다.다음과 같은 에러가 표시됩니다.
value foreach is not a member of java.util.List[?0]
Java List를 Scala List로 변환해야 할 것 같습니다.위의 문맥에서 어떻게 그것을 할 것인가?
EDIT: 이것은 2.12.0 이후 폐지되었습니다.사용하다JavaConverters
대신.(@yaroslav의 코멘트)
Scala 2.8 이후 이 변환은 다음과 같은 기능을 사용하여 언어로 구현되었습니다.
import scala.collection.JavaConversions._
...
lst.toList.foreach{ node => .... }
작동하다.asScala
동작하지 않았다
2.12.x 사용 시import scala.collection.JavaConverters._
2.13.x 사용 시import scala.jdk.CollectionConverters._
scala. 컬렉션에만 유용한 Scala 객체는 scala.collection입니다.자바 컨버터
Import 및asScala
그 후 다음과 같이 합니다.
import scala.collection.JavaConverters._
val lst = node.getByXPath(xpath).asScala
lst.foreach{ node => .... }
이것으로 스칼라를 얻을 수 있습니다.Buffer
표현에 의해 실현될 수 있습니다.foreach
.
자바어로 된 답변을 찾고 있었는데 의외로 깨끗한 솔루션을 찾을 수 없었습니다.잠시 후 알 수 있었기 때문에 다른 사용자가 Java 구현을 찾고 있는 경우를 대비해 여기에 추가하기로 했습니다(Scala에서도 동작할 수 있을 것 같습니다).
JavaConversions.asScalaBuffer(myJavaList).toList()
Java를 변환해야 하는 경우List<ClassA>
스칼라로List[ClassB]
그 후 다음 작업을 수행해야 합니다.
1) 추가
import scala.collection.JavaConverters._
2) 방법 사용asScala
,toList
그리고 나서.map
List <ClassA> javaList = ...
var scalaList[ClassB] = javaList.asScala.toList.map(x => new ClassB(x))
3) 다음 항목을 추가합니다.ClassB
수신하는 컨스트럭터ClassA
파라미터로서 다음과 같이 입력합니다.
case class ClassB () {
def this (classA: ClassA) {
this (new ClassB (classA.getAttr1, ..., classA.getAttrN))
}
}
Java 목록을 스칼라 목록으로 변환하는 바로 가기
import scala.jdk.CollectionConverters._
myjavaList.asScala.toList
scala 2.8.1을 사용하기 때문에JavaConverters._
asScala 및 asJava 메서드를 사용하여 scala 및 Java 컬렉션을 변환합니다.
import scala.collection.JavaConverters._
javalist.asScala
scalaSeq.asJava
변환 관계 scala 문서 사이트 참조
언급URL : https://stackoverflow.com/questions/6356465/how-to-get-scala-list-from-java-list
'programing' 카테고리의 다른 글
JavaScript에서의 코드 구성에 대해 일반적으로 인정되고 있는 베스트 프랙티스 (0) | 2022.10.30 |
---|---|
https를 통해 파일을 다운로드하려면 openssl 확장자를 사용하도록 설정해야 합니다. (0) | 2022.10.30 |
Symfony2 - 내장된 양식 유형에 대해 유효성 검사가 작동하지 않음 (0) | 2022.10.30 |
TCHAR은 아직 관련이 있습니까? (0) | 2022.10.30 |
오류 2003(HY000):'127.0.0.1'(111)의 MySQL 서버에 연결할 수 없습니다. (0) | 2022.10.30 |