質問

私はセットを作成していて、私はどのような実装を選択することができます(Scalaでセットを持っている。私が使用していますJavaライブラリがjava.util.Set [文字列]。

を期待しています

Scalaでこれを行うには、次の正しい方法(基礎となるscala.collection.jcl.HashSet#を使用して)です

import com.javalibrary.Animals

var classes = new scala.collection.jcl.HashSet[String]
classes += "Amphibian"
classes += "Reptile"
Animals.find(classes.underlying)

これは、動作しているようだが、私はスカラ座に非常に新しいですので、私はこれが好ましい方法(私はタイプ不一致エラーを取得していますしようと、他の方法)であるかどうかを知りたい。

error: type mismatch;
 found   : scala.collection.jcl.HashSet[String]
 required: java.util.Set[_]
役に立ちましたか?

解決

あなたはScalaの2.8について尋ねられた場合は、

、Javaコレクションの相互運用性はscala.collection.JavaConversionsによって供給されています。このケースでは、JavaConversions.asSet(...)は( - >スカラとスカラ - 各方向に1つずつ、ジャワあります> Javaの)欲しいます。

スカラ2.7は、Javaコレクションをラップ各scala.collection.jclクラスは、ラップされたJavaコレクション・インスタンスを提供underlying性質を有している。

他のヒント

スカラので2.12.0 scala.collection.JavaConversions 廃止され

  

そこで、このAPIは廃止されましたとJavaConvertersを代わりに使用してください。 JavaConvertersはなく拡張メソッドを介して、同一の変換を提供します。

そしてScalaは2.8.1以降することができます<のhref = "http://www.scala-lang.org/files/archive/api/2.12.0/scala/collection/JavaConverters$.html" のrel =」 noreferrer ">この目的のためにのscala.collection.JavaConvertersを使用します:

import scala.collection.JavaConverters._
val javaSet = new java.util.HashSet[String]()
val scalaSet = javaSet.asScala
val javaSetAgain = scalaSet.asJava

2.7.35のために私は非常にの使用をお勧めします<全角>:ます。http:// githubの.COM / jorgeortiz85 /スカラ座-javautilsする

スカラ座2.12でそれを使用することが可能である:scala.collection.JavaConverters.setAsJavaSet(scalaSetInstance)

なお、出発Scala 2.13、パッケージは、

scroll top