以前のエントリでIntelliJ IDEAへLombok Pluginをインストール手順を記載しました。
このPluginを利用することでIntelliJ IDEA上で、Lombokの操作を一部補助してくれます。
Lombokのアノテーションの貼り付け
メニューからの選択操作でコード上にLombokのアノテーションを付与することができます。
(1) アノテーションを付与するクラスを開きます
(2) Refactor > Lombok と選択し、表示された中から付与するアノテーションを選択します(ここでは@Data
を選択します)
(3) 対象のクラスに@Data
が付与されました
結果を見てわかりますが、余計なアノテーションのimportまで追加されています・・・
delombok
以前のエントリでLombokのアノテーションにより実際に生成されるコードを確認するためのdelombokの機能について書きました。
その際は、コマンドラインからの操作かMavenと連動させる操作となっていました。
Lombok PluginによりIntelliJ IDEA上の操作でdelombokを簡単に実行することが可能です。
以下クラスをIntelliJ IDEA上で開いている状態とします。
import lombok.Value; @Value public class User { private String name; private int age; }
(1) Refactor > Delombok と選択します。さらにどのアノテーションを展開するかを選択します(ここでは All lombok annotations を選択します)
(2) delombokの結果が表示されます(実際に対象のjavaファイルの内容が置き換わっているので注意が必要です。必要に応じてundo操作等で元に戻してください)
本Puluginを用いた際にdelombokに関してやや不思議な動きをする部分があります。仕様なのかバグなのか・・・
@Value
を付与した以下クラスが存在しているとします。
import lombok.Value; @Value public class User { private String name; private int age; }
このクラスに対して、先の操作と同じようにdelombokをIntelliJ IDEA上で実行すると、以下の結果が出力されます。
基本的に問題ないコードにも見えますが、なぜかクラスやメンバがfinalになっていません。
ご愛敬なのか何なのか謎ですが、現時点ではこんな出力になってしまいます。