Rumah > Java > javaTutorial > Fahami Perbezaan Antara @RequiredArgsConstructor, @AllArgsConstructor dan @NoArgsConstructor di Lombok

Fahami Perbezaan Antara @RequiredArgsConstructor, @AllArgsConstructor dan @NoArgsConstructor di Lombok

Mary-Kate Olsen
Lepaskan: 2025-01-24 00:09:10
asal
562 orang telah melayarinya

Lombok memudahkan penciptaan pembina Java dengan menjananya pada masa penyusunan. Panduan ini menerangkan tiga anotasi utama Lombok: @NoArgsConstructor, @AllArgsConstructor dan @RequiredArgsConstructor.

1. Anotasi Pembina Lombok

Understand the Difference Between @RequiredArgsConstructor, @AllArgsConstructor, and @NoArgsConstructor in Lombok

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Lombok menjana public Person(String name) { ... } kerana name ialah final.

2. Memilih Anotasi yang Tepat

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Ini memastikan repository dan notificationService dimulakan apabila mencipta CustomerService.

3. Kesimpulan

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan