Heim > Java > javaLernprogramm > Verstehen Sie den Unterschied zwischen @RequiredArgsConstructor, @AllArgsConstructor und @NoArgsConstructor in Lombok

Verstehen Sie den Unterschied zwischen @RequiredArgsConstructor, @AllArgsConstructor und @NoArgsConstructor in Lombok

Mary-Kate Olsen
Freigeben: 2025-01-24 00:09:10
Original
562 Leute haben es durchsucht

Lombok vereinfacht die Erstellung von Java-Konstruktoren, indem es sie zur Kompilierungszeit generiert. In diesem Leitfaden werden drei wichtige Lombok-Anmerkungen erläutert: @NoArgsConstructor, @AllArgsConstructor und @RequiredArgsConstructor.

1. Anmerkungen zum Lombok-Konstrukteur

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

1.1 @NoArgsConstructor: Diese Annotation generiert einen Konstruktor ohne Argumente. Nützlich zum Erstellen von Klasseninstanzen ohne Angabe von Anfangswerten. Zum Beispiel:

<code class="language-java">import lombok.NoArgsConstructor;

@NoArgsConstructor
public class Example {}</code>
Nach dem Login kopieren

Lombok erstellt einen Konstruktor, der public Example() {} entspricht.

1.2 @AllArgsConstructor: Dies generiert einen Konstruktor, der ein Argument für jedes Klassenfeld akzeptiert. Ideal zum Initialisieren aller Felder bei der Objekterstellung. Beispiel:

<code class="language-java">import lombok.AllArgsConstructor;

@AllArgsConstructor
public class Person {
    private String name;
    private int age;
}</code>
Nach dem Login kopieren

Lombok schafft public Person(String name, int age) { ... }.

1.3 @RequiredArgsConstructor: Dadurch wird ein Konstruktor für alle final-Felder und mit @NonNull annotierten Felder generiert. Stellt sicher, dass wichtige Felder immer initialisiert werden. Beispiel:

<code class="language-java">import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class Person {
    private final String name;
    private int age;
}</code>
Nach dem Login kopieren

Lombok generiert public Person(String name) { ... }, weil name final ist.

2. Die richtige Anmerkung auswählen

Die beste Anmerkung hängt von Ihren spezifischen Anforderungen ab:

2.1 @NoArgsConstructorAnwendungsfälle: Verwenden Sie diese Option, wenn Sie einen Konstruktor ohne Argumente benötigen, der häufig von Frameworks wie Hibernate für Entitätsklassen benötigt wird. Zum Beispiel:

<code class="language-java">@NoArgsConstructor
@Entity
public class User {
    @Id
    private Long id;
    private String username;
}</code>
Nach dem Login kopieren

2.2 @AllArgsConstructorAnwendungsfälle: Wird verwendet, wenn alle Felder während der Objekterstellung initialisiert werden müssen. Beispiel:

<code class="language-java">@AllArgsConstructor
public class Order {
    private String orderId;
    private String product;
    private int quantity;
}</code>
Nach dem Login kopieren

Dies ermöglicht Order order = new Order("123", "Laptop", 2);

2.3 @RequiredArgsConstructorAnwendungsfälle: Wird verwendet, um die Initialisierung wesentlicher (häufig final oder @NonNull) Felder zu gewährleisten. Nützlich für die Abhängigkeitsinjektion in Serviceklassen:

<code class="language-java">@RequiredArgsConstructor
public class CustomerService {
    private final CustomerRepository repository;
    private final NotificationService notificationService;
}</code>
Nach dem Login kopieren

Dadurch wird sichergestellt, dass repository und notificationService beim Erstellen von CustomerService initialisiert werden.

3. Fazit

Die Beherrschung dieser Lombok-Annotationen führt zu saubererem, besser wartbarem Java-Code. Die Wahl hängt von den Anforderungen Ihres Projekts an die Objektinitialisierung und Framework-Kompatibilität ab. Weitere Einzelheiten finden Sie unter: Den Unterschied zwischen @RequiredArgsConstructor, @AllArgsConstructor und @NoArgsConstructor in Lombok verstehen

Das obige ist der detaillierte Inhalt vonVerstehen Sie den Unterschied zwischen @RequiredArgsConstructor, @AllArgsConstructor und @NoArgsConstructor in Lombok. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage