タグ付けされた質問 「lombok」

Project Lombokは、アノテーションとコンパイル時のコード生成を通じてJavaの定型コードを削減するためのツールです。

15
Project Lombokを使用しても安全ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 Project Lombokが知らない場合は、アノテーション付きのゲッターとセッターの生成などのJavaの煩わしさや、@Dataによる生成のような単純なJavaBeanでさえ役立ちます。特に、ゲッターで作成および非表示にする必要のある最大7つの異なるフィールドがある50の異なるイベントオブジェクトで、それは本当に私に役立ちます。これで約1000行のコードを削除できました。 しかし、長期的には後悔する決断になるのではないかと心配しています。##Java Freenode私が言及すると、Flamewarsがチャネルで噴火します。コードスニペットを提供すると、ヘルパーの可能性を混乱させ、人々はJavaDocの不足について不満を抱き、将来のコミッタはとにかくそれをすべて削除する可能性があります。私はポジティブなことを本当に楽しんでいますが、ネガティブなことを心配しています。 だから:どんな規模のプロジェクトでも、Lombokを使用しても安全ですか?プラスの効果はマイナスの価値がありますか?
436 java  lombok 

4
ロンボクで1つのセッター/ゲッターを省略する
ロンボクでデータクラスを使いたいのですが。約12のフィールド@Dataがあるため、すべてのセッターとゲッターを生成するために注釈を付けました。ただし、アクセサを実装したくない特別なフィールドが1つあります。 ロンボクはこのフィールドをどのように省略しますか?
232 java  lombok 

30
IntelliJ IDEAでLombokを使用している場合、プロジェクトをコンパイルできません
IntelliJ IDEA 11を使用して開発しているプロジェクトでLombokを使用しようとしています。 IDEAのサードパーティプラグインをインストールしましたが、IDEAはすべての自動生成されたメソッド/フィールドを表示するため、問題なく動作しているようです。 だから私はSlf4jを使用するクラスがあります。このように注釈を付けました import lombok.extern.slf4j.Slf4j; @Slf4j public class TestClass { public TestClass() { log.info("Hello!"); } } しかし、プロジェクトコンパイラを作成すると、次のようになりcannot find symbol variable logます。 ここで何が欠けているか教えていただけますか? 更新: RequestFactoryアノテーションプロセスが失敗したことが判明しました。 input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject} annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave] Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false. cannot …

13
Lombokが追加されましたが、ゲッターとセッターがIntellij IDEAで認識されません
IntelliJ IDEAをUbuntuで使用しています。プロジェクトにlombok.jarを追加し、IDEA用のLombokプラグインをインストールしました。注釈にアクセスできますが、gettersおよびsettersは生成されません。存在しないゲッターまたはセッターメソッドにアクセスしようとした場合と同じエラーが発生します。何が欠けているのでしょうか?

4
ロンボクはどのように機能しますか?
今日ロンボクに会った。 私はそれがどのように機能するかを知りたいと非常に切望しています。 Java Geek Articleはいくつかの手掛かりを与えますが、私には完全に明確ではありません: Java 6はaptを削除し、javacが注釈を管理できるようにし、プロセスを合理化して、より簡単なシングルステップコンピューティングを取得します。これはロンボクがたどった経路です。 多分Java 6では、コンパイルプロセスは次のようになります:javac-> apt-> lombok aptプロセス->クラスファイルを読み取り、ASMを使用してset / getメソッドを追加しますか? メカニズムの詳細を教えてください。
148 java  annotations  lombok 

7
ロンボクでスーパーコンストラクターを呼び出す方法
クラスがあります @Value @NonFinal public class A { int x; int y; } 私は別のクラスBを持っています @Value public class B extends A { int z; } lombokは、A()コンストラクターを見つけることができないというエラーをスローしています。これを明示的に呼び出して、次のコードを生成するようにクラスbに注釈を付けます。 public class B extends A { int z; public B( int x, int y, int z) { super( x , y ); this.z = z; } …
118 java  lombok 

22
Lombokの@ Slf4jとIntellijを使用したビルド:シンボルログが見つかりません
コマンドラインから問題なくビルドできるMavenプロジェクトがあります。しかし、IntelliJでビルドすると、次のエラーが発生します。 java: FileName.java:89: cannot find symbol symbol : variable log Javaファイルで定義またはインポートされたログはありませんが、 @Slf4j final public class FileName { ログクラスを定義するクラス本体の前のステートメント。 プロジェクト構造ウィンドウでは、次のクラスがあります。 Maven: org.slf4j:jcl-over-slf4j:1.6.1 Maven: org.slf4j:slf4j-api:1.6.6 Maven: org.slf4j:slf4j-log4j12:1.6.6 Maven: org.slf4j:slf4j-simple:1.6.6 ライブラリの下にリストされ、ダウンロードされて利用可能であることが示されています。 コマンドラインからmavenを使用してビルドするのにIntelliJを介してビルドしない理由と問題の解決方法はありますか?

2
lombokを使用して既存のオブジェクトからオブジェクトを構築します
次のようなlombokアノテーション付きクラスがあるとしましょう @Builder class Band { String name; String type; } 私は私ができることを知っています: Band rollingStones = Band.builder().name("Rolling Stones").type("Rock Band").build(); 既存のオブジェクトをテンプレートとして使用し、そのプロパティの1つを変更して、Fooのオブジェクトを作成する簡単な方法はありますか? 何かのようなもの: Band nirvana = Band.builder(rollingStones).name("Nirvana"); これはlombokのドキュメントでは見つかりません。
105 java  lombok 

4
継承を伴う@Dataアノテーションlombokの警告equals / hashCode
私は他から継承するエンティティを持っています。一方、ボイラープレートコードを減らすためにlombokプロジェクトを使用しているので、@Dataアノテーションを付けます。@Data継承のある注釈は、次の警告を生成します。 このクラスがjava.lang.Objectを拡張していない場合でも、equals / hashCode実装を生成しますが、スーパークラスを呼び出すことはありません。これが意図的なものである場合は@EqualsAndHashCode(callSuper=false)、タイプに追加してください。 注釈を追加することが賢明です@EqualsAndHashCode (callSuper = true)か@EqualsAndHashCode (callSuper = false)?それが追加されていない場合は、そのどちらですcallSuper=falseかcallSuper=true?
103 java  lombok 

20
ロンボクはゲッターとセッターを生成していません
Mavenベースのプロジェクトを別のコンピューターとホラー、どこにでも赤いマーカーに送信しようとしたところです!! ただし、mvn clean install問題なく構築されています。 すぐに、私はLombokが私のクラスのゲッターとセッターを生成していないことに気付きましたが、@Getterと@SetterはEclipseによって正しく認識されています。 両方のコンピューターは同じMavenバージョン(3.0.4)を使用しますが、JDKは異なります(1.6_23および1.6_33)。どちらもEclipse Indigo 32ビットを使用しています。問題を解決する方法についてのアイデアはありますか?
101 java  eclipse  maven  lombok 

14
ジャクソンとロンボクを一緒に働かせることはできません
私はジャクソンとロンボクを組み合わせる実験をしています。それらは私のクラスです: package testelombok; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Value; import lombok.experimental.Wither; @Value @Wither @AllArgsConstructor(onConstructor=@__(@JsonCreator)) public class TestFoo { @JsonProperty("xoom") private String x; private int z; } package testelombok; import com.fasterxml.jackson.databind.ObjectMapper; import com.xebia.jacksonlombok.JacksonLombokAnnotationIntrospector; import java.io.IOException; public class TestLombok { public static void main(String[] args) throws IOException { TestFoo tf …


3
ロンボクゲッター/セッターvs Java 14レコード
私はLombokプロジェクトが大好きですが、最近はJava 14の新機能のいくつかを読んで試しています。 新しい機能には、コンストラクター、プライベート最終フィールド、アクセサー、equals / hashCode、getters、toStringメソッドなどの機能がすでに組み込まれているクラスを作成できるようにするrecordキーワードがあります。 今私の質問です:ロンボクの機能に依存する方が良いですか、それともレコード機能を使い始めるべきですか: これを使用する方が良いです: record Person (String name, String surname) {} またはその: @AllArgsConstructor @ToString @EqualsAndHashCode public class GetterSetterExample { @Getter private int name; @Getter private int surname; } 両方のアプローチの長所と短所は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.