10

ScalaプロジェクトをJavaと「互換性がある」ようにしたい場合、つまりJavaコードからScala APIを呼び出すのが実用的である場合(Scala以外のプログラマーも貢献できるようにするため)、JavaでProjectLombokを使用することは可能でしょうか。コード?それとも、2人はうまくやっていないのですか?

私はScalaIDEを使用してEclipseで開発します。

編集:私が本当に意味したのは、EclipseのScalaエディターは、Lombokによって生成されたコードを見るのか、それとも私が実際に入力したJavaコードだけを見るのかということでした。

4

2 に答える 2

13

ScalaとJavaはバイトコードレベルで相互運用されているため、バイトコードがどこから来たのかは関係ありません。したがって、Lombokアノテーションを使用するJavaコードは、Scalaプログラムから呼び出すことができると思います。

そして、Lombokが提供するこれらのアノテーションをScalaコードで使用できるかどうかを尋ねている場合、それらの機能のほとんどはScala itsefによって提供されるため、意味がありません。

たとえば、のクラスはScala@Dataにある可能性があります。case class

case class Data(name: String, value: Int)

また、通常のクラスと同じようにJavaコードでアクセスできます。

Data d1 = new Data("someData", 1);  // Using constructor
Data d2 = Data.apply("someData", 1); // Or using factory

そして、Dataすべての素晴らしい、、....などがtoStringあります。equalshashcode

于 2011-12-08T12:53:24.307 に答える
12

Scalaエディターの部分は、生成されたコードを「正しく表示」します。

lombokが行うことのほとんどは、scalaと同じように、何らかの仕様に従います。lombokが逸脱するのは、canEqualとequalsの実装です。これは、偶然にも、scalaがケースクラスIIRCに対して生成するものとまったく同じであるため、互換性があります:)

免責事項:私はロンボクをプロジェクトするための中心的な貢献者です。

于 2011-12-20T00:48:42.107 に答える