11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

lombok.Data Boolean型の値がとれず途方にくれた話

Last updated at Posted at 2019-06-11
lombok2.png

記事を書いたときのlombokのバージョンは1.18.8です。
@Lombokとは、Javaのライブラリで、自動的にエディターとビルドツールとつながり、あなたのJavaをスパイスアップ(風味を添えて)くれるらしい。

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

公式ページより引用
要はgetterやsetterやequalsを自動的に生成してくれるライブラリです。
しかし自動で色々とやってくれてしまうため
例外的な動きをしてくれると困ってしまいます。

"Boolean型の変数名が勝手に書き換えられている"
"なんでGetterが作られてないんだ!"
とあらぬ誤解をうけ、ぼくの頭の中をスパイスで充満させてくれました。
Lombok Dataでgetter/setter生成時
boolean型のときは、少し命名の方法が異なるようで注意が必要です。メモ代わりに書いてみました。

@data
TestDao
{
boolean isExhausted;//getExhausted() ではなくisExhausted()というメソッドができる。@getter設置をしてもget〇〇はできない。
boolean exhausted;//自動的にisが付与されisExhausted()というgetterができる。
}

まとめ
・lombokでは、どうしてもboolean型でget〇〇というgetterを作りたくないらしい。
・取得したデータをJSON形式で返したとき、変数名の頭にisがあるとき、このisはなぜか取り除かれていた。
・JSON形式でどうしても"is"を先頭につけてKey名で返したい場合は、直前に@JsonProperty("isExhausted")を置く。
・生成されてないじゃん と自分でGet〇〇()などのメソッドを作るとローマッパーでのデータ取得時無視される(setterがつくられてない?)。←ここではまる。

憶測で物事を進めてはいけないと感じたこの頃でした。

11
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?