IDEA は、開発者にとって必須のスキルであるロンボク島の警告をバッチで解決します。

問題の背景

Lombok の @Data アノテーションを使用する場合、パブリック Base 基本クラスがカプセル化されるため、次の警告プロンプトが常に表示されます。

このクラスが java.lang.Object を拡張していないにもかかわらず、スーパークラスへの呼び出しを行わずに、equals/hashCode 実装を生成します。これが意図的な場合は、型に '(callSuper=false)' を追加してください。情報を確認してください: Lombok アノテーションの一般的な検査を提供して 
 ください。

具体的にはどのような問題があるのでしょうか?

 スーパークラスの呼び出しを行わずに、equals/hashCode 実装を生成します。つまり、親クラスの属性は自動的には追加されません。

それは少し不快です。

解決

与えられた提案は、次の注釈を直接追加して解決することです。 

@EqualsAndHashCode(callSuper = true)

この問題は解決できますが、特にマイクロサービスなどの比較的大規模なプロジェクトの場合は、それぞれを変更する必要があります。修正するのははるかに面倒です。

何か良い方法はないでしょうか、これは本当に存在します。

これで、プロジェクトのルート ディレクトリまたは src ディレクトリに lombok.config ファイルを直接作成できるようになりました。

次に、内部に 2 行のコードを追加すると、削除できます。

config.stopBubbling=true
lombok.equalsAndHashCode.callSuper=call

次にコードを見ると、@Data の波線が消えていることがわかります。

要約する

Ali のコーディング仕様によれば、equals を書き換える場合は、hashCode メソッドも書き換える必要があります。書き換えに失敗すると、特定のハッシュベースのデータ構造 (HashSet、HashMap など) で問題が発生する可能性があります。

したがって、いくつかの警告に対処できる場合は対処するのが最善です。

Supongo que te gusta

Origin blog.csdn.net/m290345792/article/details/132716932
Recomendado
Clasificación