問題タブ [scala-java-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
16226 参照

scala - Scala は List[Int] を java.util.List[java.lang.Integer] に変換します

Scalaを に変換するList[Int]方法はありjava.util.List[java.lang.Integer]ますか?

私はJava(Thrift)とインターフェースしています。

JavaConversionsをサポートしておりList --> java.util.List、の間には暗黙的Int --> java.lang.Integerなものがありますが、手動で変換するには追加のパスが必要であることがわかります。

0 投票する
2 に答える
351 参照

scala - Scala はあいまいな Main クラスを検索します

次のような単純な scala スクリプトが必要です。

これSenseEvalAllWordsDocumentReaderは、SAX パーサーの単なるラッパーである Java 定義のクラスです。センテンスを呼び出すと、Sentence と呼ばれる別の Java 定義クラスの Java List が返されるだけです。を使用してこのコードを実行すると

次の恐ろしい出力の混乱が得られます。

これは、scala が Main という名前のクラスを探していて、それが見つからないことを意味していると思いますが、なぜこれを探すことを考えるのかわかりません。さらに、reader.sentences()行を削除したり、電話をかけsize()たりすると、問題はなくなります。この呼び出しにより Main という名前のクラスが存在するはずだと scala が何らかの形で推論していると推測できますが、明確な回避策は見当たりません。

考え?どんな助けでも大歓迎です。

0 投票する
5 に答える
22127 参照

scala - java.util.IteratorからScalaリストへ?

私は次のコードを持っています:

obj.getKeysを返しますjava.util.Iterator<java.lang.String>

ドキュメントに従って、(インポートされた)をasScala介して呼び出します。JavaConverers

scala.collection.Iterator定義する

したがって、これに基づいて、これは機能するはずだと思いましたが、コンパイルエラーは次のとおりです。

typeパラメーターまたはjavaIteratorがJava文字列であり、Scala文字列のリストを作成しようとしていることは理解していますが、(おそらく単純に)暗黙の変換があると思いました。

0 投票する
2 に答える
15145 参照

java - Javaで実装されたメソッドでScalaトレイトを使用する

JavaからScalaトレイトに実装されたメソッドを呼び出すことはできないと思いますか、それとも方法はありますか?

私がScalaにいるとしましょう:

そしてJavaでそれを次のように使用する場合

Javaはそれを文句を言うTrait is not abstract and does not override abstract method bar() in Trait

0 投票する
5 に答える
65950 参照

scala - Scalaの==と.equalsの違いは何ですか?

Scalaの==との違いは何ですか? また、いつどちらを使用するのですか?.equals()

実装はJavaと同じですか?

編集:関連する質問は、の特定のケースについて話しAnyValます。より一般的なケースはAnyです。

0 投票する
3 に答える
3017 参照

java - Java で Scala オブジェクトに相当するものは何ですか?

Scala では、次のように記述できます。

これはコンパイラによってどのように実装されていますか? Javaから呼び出すことはできFoo.bar();ますがnew Foo();、Javaからエラーが発生しますcannot find symbol symbol: constructor Foo()

  • JVM はネイティブでシングルトンをサポートしていますか?
  • コンストラクターを持たない Java のクラスを持つことは可能ですか?

注:これは、によって出力されるコードですscalac -print

0 投票する
4 に答える
46374 参照

scala - ScalaのJavaConvertersとJavaConversionsの違いは何ですか?

にはscala.collection、非常によく似た 2 つのオブジェクトJavaConversionsとがありJavaConvertersます。

  • これら 2 つのオブジェクトの違いは何ですか?
  • なぜ両方が存在するのですか?
  • どちらか一方を使用するのはいつですか?
0 投票する
3 に答える
1186 参照

scala - Java での scala vararg メソッドの使用

java から使用すると、すべての scala vararg メソッドが変数の Seq を受け入れるように見え、Java ネイティブの vararg メソッドとして使用できないのはなぜですか。これはバグですか?

たとえば、Bufferhas method def append(elems: A*): Unit. しかし、Java では別の署名があります: void append(Seq<A>).

0 投票する
2 に答える
936 参照

java - Java からかっこなしで Scala オブジェクトの val にアクセスできますか?

次の Scala オブジェクトがあるとします。

Scala コンパイラは、NAMEフィールドにアクセスするためのパラメーターなしのメソッドを生成するようです。ただし、Java からこのフィールドにアクセスしようとすると、このフィールドにアクセスする唯一の方法は、次のようなパラメーターなしのメソッドを使用することです。

valJavaが期待されるJavaイディオムごとに次のようにアクセスできるようにScalaコンパイラをだます方法はありますか?

0 投票する
3 に答える
3181 参照

scala - Javaに匹敵するオブジェクトの慣用的な使用

java.util.Date(java.lang.Comparableを実装)を使用していて、それをうまく使用できるようにしたいと考えています。たとえば、「compareTo(other)==1」の代わりに<と>=を使用します。scala.mathのようなものを簡単に混ぜる良い方法はありますか?ボイラープレートをたくさん使わずに注文しましたか?