Menggunakan @Getter for Boolean Fields Lombok

1. Perkenalan

Project Lombok adalah perpustakaan populer untuk mengurangi boilerplate Java.

Dalam tutorial singkat ini, kita akan melihat cara kerja anotasi @Getter Lombok pada bidang boolean untuk menghilangkan kebutuhan untuk membuat metode pengambil yang sesuai.

2. Ketergantungan Maven

Mari kita mulai dengan menambahkan Project Lombok ke pom.xml kita :

 org.projectlombok lombok 1.18.10 

3. Menggunakan @Getter pada Bidang boolean

Katakanlah kita ingin Lombok membuat metode pengakses untuk bidang boolean pribadi kita.

Kami dapat memberi anotasi bidang itu dengan @Getter :

@Getter private boolean running;

Dan Lombok akan menggunakan prosesor anotasi untuk menghasilkan metode isRunning () di kelas.

Dan sekarang, kita bisa merujuknya, meskipun kita belum menulis metodenya sendiri:

@Test public void whenBasicBooleanField_thenMethodNamePrefixedWithIsFollowedByFieldName() { LombokExamples lombokExamples = new LombokExamples(); assertFalse(lombokExamples.isRunning()); }

3.1. Sebuah boolean lapangan Memiliki Nama Sama seperti Its accessor

Mari tambahkan baris kode lain untuk membuat contoh sedikit rumit:

@Getter private boolean isRunning = true;

Akan sedikit merepotkan jika Lombok membuat metode yang disebut isIsRunning .

Sebaliknya, Lombok menciptakan isRunning seperti sebelumnya:

@Test public void whenBooleanFieldPrefixedWithIs_thenMethodNameIsSameAsFieldName() { LombokExamples lombokExamples = new LombokExamples(); assertTrue(lombokExamples.isRunning()); }

3.2. Dua Bidang boolean Dengan Nama Aksesor Sama

Terkadang, bisa ada konflik.

Katakanlah kita perlu memiliki baris berikut di kelas yang sama:

 @Getter public boolean running = true; @Getter public boolean isRunning = false;

Ada banyak alasan mengapa kita harus menghindari konvensi penamaan yang membingungkan seperti ini. Salah satunya adalah menimbulkan konflik bagi Lombok.

Menggunakan konvensi Lombok, kedua bidang ini akan memiliki nama metode pengakses yang sama : isRunning . Tetapi memiliki dua metode dengan nama yang sama di kelas yang sama akan membuat kesalahan kompiler.

Lombok memecahkan masalah ini dengan membuat hanya satu metode aksesor dan, dalam hal ini, mengarahkannya ke berjalan, berdasarkan urutan deklarasi lapangan:

@Test public void whenTwoBooleanFieldsCauseNamingConflict_thenLombokMapsToFirstDeclaredField() { LombokExamples lombokExamples = new LombokExamples(); assertTrue(lombokExamples.isRunning() == lombokExamples.running); assertFalse(lombokExamples.isRunning() == lombokExamples.isRunning); }

4. Menggunakan @Getter pada Bidang Boolean

Sekarang, Lombok memperlakukan jenis Boolean sedikit berbeda.

Mari kita coba contoh yang sama untuk terakhir kalinya, tetapi dengan Boolean, bukan tipe primitif:

@Getter private Boolean running;

Alih-alih membuat isRunning , Lombok akan menghasilkan getRunning :

@Test public void whenFieldOfBooleanType_thenLombokPrefixesMethodWithGetInsteadOfIs() { LombokExamples lombokExamples = new LombokExamples(); assertTrue(lombokExamples.getRunning()); }

5. Kesimpulan

Dalam artikel ini, kami membahas cara menggunakan anotasi @Getter Lombok untuk objek Boolean primitif dan Boolean.

Dan pastikan untuk memeriksa sampel di Github.