Rumah >Java >javaTutorial >Fahami Perbezaan Antara @RequiredArgsConstructor, @AllArgsConstructor dan @NoArgsConstructor di Lombok
Lombok memudahkan penciptaan pembina Java dengan menjananya pada masa penyusunan. Panduan ini menerangkan tiga anotasi utama Lombok: @NoArgsConstructor
, @AllArgsConstructor
dan @RequiredArgsConstructor
.
1.1 @NoArgsConstructor
: Anotasi ini menjana pembina tanpa hujah. Berguna untuk mencipta contoh kelas tanpa memberikan sebarang nilai awal. Contohnya:
<code class="language-java">import lombok.NoArgsConstructor; @NoArgsConstructor public class Example {}</code>
Lombok mencipta pembina bersamaan dengan public Example() {}
.
1.2 @AllArgsConstructor
: Ini menjana pembina yang mengambil satu hujah untuk setiap medan kelas. Ideal untuk memulakan semua medan pada penciptaan objek. Contoh:
<code class="language-java">import lombok.AllArgsConstructor; @AllArgsConstructor public class Person { private String name; private int age; }</code>
Lombok mencipta public Person(String name, int age) { ... }
.
1.3 @RequiredArgsConstructor
: Ini menjana pembina untuk semua final
medan dan medan beranotasi dengan @NonNull
. Memastikan medan penting sentiasa dimulakan. Contoh:
<code class="language-java">import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class Person { private final String name; private int age; }</code>
Lombok menjana public Person(String name) { ... }
kerana name
ialah final
.
Anotasi terbaik bergantung pada keperluan khusus anda:
2.1 @NoArgsConstructor
Kes Penggunaan: Gunakan apabila anda memerlukan pembina tanpa hujah, selalunya diperlukan oleh rangka kerja seperti Hibernate untuk kelas entiti. Contohnya:
<code class="language-java">@NoArgsConstructor @Entity public class User { @Id private Long id; private String username; }</code>
2.2 @AllArgsConstructor
Kes Penggunaan: Gunakan apabila semua medan memerlukan permulaan semasa penciptaan objek. Contoh:
<code class="language-java">@AllArgsConstructor public class Order { private String orderId; private String product; private int quantity; }</code>
Ini membolehkan Order order = new Order("123", "Laptop", 2);
2.3 @RequiredArgsConstructor
Kes Penggunaan: Gunakan untuk menjamin permulaan medan penting (selalunya final
atau @NonNull
). Berguna untuk suntikan pergantungan dalam kelas perkhidmatan:
<code class="language-java">@RequiredArgsConstructor public class CustomerService { private final CustomerRepository repository; private final NotificationService notificationService; }</code>
Ini memastikan repository
dan notificationService
dimulakan apabila mencipta CustomerService
.
Menguasai anotasi Lombok ini membawa kepada kod Java yang lebih bersih dan boleh diselenggara. Pilihan bergantung pada keperluan projek anda untuk permulaan objek dan keserasian rangka kerja. Untuk butiran lanjut, lihat: Fahami Perbezaan Antara @RequiredArgsConstructor, @AllArgsConstructor dan @NoArgsConstructor di Lombok
Atas ialah kandungan terperinci Fahami Perbezaan Antara @RequiredArgsConstructor, @AllArgsConstructor dan @NoArgsConstructor di Lombok. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!