問題タブ [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 投票する
3 に答える
635 参照

java - Java から Scala オブジェクトのフィールドを反射的に取得するにはどうすればよいですか?

次のオブジェクトがあります。

Java リフレクションを使用して、これらの各変数の値を取得するにはどうすればよいですか? フィールドを取得する方法がわかりませんが、オブジェクトからメソッドを取得できます。これは可能ですか?

ありがとう!

0 投票する
1 に答える
2375 参照

java - Eclipse Java での Scala オブジェクトのネストされたクラス

Eclipse IDE を使用している場合、Java コードから Scala クラスを参照できません。問題の Scala クラスは、Scala オブジェクト構造内にネストされています。Java コードでクラスを使用しようとすると、Eclipse はバイナリー名の使用について不平を言います。

Inner以下は、目的のクラス ( )を定義する Scala コードの例です。

Java コードでクラスを使用するInnerには、次のコードを使用します。

ただし、Eclipse (Indigo) コンパイラは、最初の行に次のメッセージを表示します。

ネストされたタイプ mypackage.Outer$Middle$Inner は、バイナリ名を使用して参照できません

興味深いことに、上記の Java コードは、NetBeans 6.9.1 で使用すると機能します。

これは Eclipse コンパイラの問題ですか? バイナリ名の使用を許可するフラグはありますか? あるいは、これは Scala の問題なのか、それとも私の使用方法の問題なのか?

0 投票する
1 に答える
309 参照

java - TypeというJavaアノテーションメンバーをscalaで設定できませんか?

私はいくつかのJavaコードをscalaに移植しようとしています。コードは、というメンバーのアノテーションを使用していますtypeが、これはscalaのキーワードです。この有効なJavaメンバーをscalaでアドレス指定する方法はありますか?

これがJavaコードです

コードのこの部分typeは、キーワードであるためコンパイルされないことを除いて、scalaでも同じです。typeキーワードをエスケープする方法はありますか?

typeこれは、メンバーを持つJavaクラスの問題でもあります

HasType.java

UseType.scala

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

java - Intellij のアイデアはドルを含むクラスを解決できません

ここで問題: コンパイルされた scala コードを含む jar があります。私が見る瓶で

Step.class Step$class.class

どちらも有効な Java クラスです。

ただし、Intellij Idea Java プロジェクトで Step$class を使用しようとすると、「シンボル Step$class を解決できません」と表示されます。しかし、コードはmavenでコンパイルされるので、問題はIDEにあると思います。

0 投票する
1 に答える
1007 参照

java - JavaからScalaスタンドアロンシングルトンオブジェクトにアクセスする

ScalaのfromStringメソッドにアクセスできません。javapを試しましたが、アクセスしている方法の少なくとも1つは機能するはずですが、機能しません。

App.scala

Test.java

JAVAP出力

「App.scala」からコンパイルされたjavapアプリ

javapApp$「App.scala」からコンパイル

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

java - Scala の Raw 型で Java インターフェイスを実装する

Scala を使用して、Sonar の拡張機能を構築しようとしています。次の Java インターフェイスを拡張する必要があります。

しかし、リソースタイプは実際には次のように定義されています:

Java raw スーパークラスを作成することで回避できることはわかっています。私はScalaのみに固執したいと思います。また、私が見逃している解決策があるかどうか、およびSonarSourceの人々に提案できる改善があるかどうかも知りたいです(生の型を使用して)。

これには問題があり、場合によってはいくつかの回避策があることを読みましたが、ここには適用されないようです(回避策明らかに修正されたチケット、チケット2091もあります...)

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

java - JavaクラスのScalaゲッターとセッター

Scalaのsetters/gettersの規則に従うJavaクラスを作成したいと思います。

簡単なクラスをフォローしようとしましたが、機能しません。

しかし、scalaからアクセスしようとすると:

「valへの再割り当て」エラーメッセージが表示されます。私はこれを探しようとしましたが、すべての問題は、scalaからjavaへの逆の場所で見つかりました。

それを行う正しい方法は何ですか?

ありがとう!

0 投票する
1 に答える
694 参照

scala - Sealed Trait / Object Case Class Byte Code 2.9.1 から変更。2.9.2に?

両方のディレクトリに同じソース ファイル

Java クラスで参照したい Errors.scala に次の封印された特性があります。Scala 2.9.1 では、Java から Errors.TooBig を Errors$TooBig$ として参照できましたが、2.9.2 ではコンパイルされなくなりました。

Errors.scala

JavaTest.java

2 つの異なるディレクトリ (2.9.1/2.9.2) に同じソース ファイルがあります。2.9.1 を使用してソースをコンパイルできますが、2.9.2 ではコンパイルできません。

以下は、com.abc.Errors$TooBig$ クラス ファイルの javap ダンプの差分です。

2.9.1 と 2.9.2 の両方で生成された 'Errors$TooBig$' というクラスが明確に存在することがわかります。

0 投票する
1 に答える
1963 参照

java - ユーザー定義の値クラスは Java ではどのように見えますか?

Haskell のnewtype:

私が持っている質問は、それが宣言されている Scala パッケージを使用する Java コードには、値クラスがどのように見えるかということです。値クラスは Java 側からの参照クラスとして表示されますか、それとも完全に消去されますか (したがって、ラップされる型として表示されます)。言い換えれば、Java がソースレベルで関与している場合、値クラスはどの程度型安全なのでしょうか?


編集

SIP-15 ドキュメント (Daniel の回答にリンクされています) によると、上記のコードはコンパイルされません。値クラスは初期化ロジックを持つことが許可されていないためですv。明示的に val であるかProbabilityunboxメソッドと対応するboxこれは、値クラスが 1 つのフィールドを持つ必要があるためです。正しいコードは次のとおりです。

ただし、質問自体はそのまま有効です。