1. ホーム
  2. java

[解決済み] Java のリストから Scala のリストを取得するには?

2022-06-03 05:07:38

質問

Java APIで、以下のようなリストを返すものがあります。

public List<?> getByXPath(String xpathExpr)

私は以下のようなscalaのコードを使っています。

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._