Skip to main content
Entwickler Themen
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

2.2. Lombok

Einführung

Lombok ist eine Java-Bibliothek, die Entwickler dabei unterstützt, Boilerplate-Code deutlich zu reduzieren. Durch einfache Annotationen können Getter, Setter, Konstruktoren und weitere Standardmethoden automatisch generiert werden.

Einbindung in Maven

Um Lombok in einem Maven-Projekt zu verwenden, füge folgende Dependency hinzu:

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.36</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

Häufig verwendete Lombok Annotationen

@Getter / @Setter

Generiert automatisch Getter und Setter.

@Getter @Setter
private String name;

@NoArgsConstructor / @AllArgsConstructor

Generiert automatisch Konstruktoren ohne oder mit allen Argumenten.

@NoArgsConstructor
@AllArgsConstructor
public class Person {
    private String name;
    private int age;
}

@RequiredArgsConstructor

Erstellt einen Konstruktor mit allen als final oder mit @NonNull annotierten Feldern.

@RequiredArgsConstructor
public class Person {
    private final String name;
    private int age;
}

@Data

Kombiniert @Getter, @Setter, @ToString, @EqualsAndHashCode und @RequiredArgsConstructor.

@Data
public class Person {
    private final String name;
    private int age;
}

@Builder

Erstellt ein Builder-Pattern für die Klasse.

@Builder
public class Person {
    private String name;
    private int age;
}

// Nutzung
Person p = Person.builder().name("Max").age(30).build();

Lombok vereinfacht die Java-Entwicklung enorm und sorgt für übersichtlichen, wartbaren Code.

Lombok Annotations, die vermieden werden sollten

Einige Lombok-Annotations sollten eher vermieden werden, da moderne Java-Alternativen existieren, die klarer, sicherer oder performanter sind:

  • @SneakyThrows: Versteckt geprüfte Exceptions. Besser: Explizite Fehlerbehandlung nutzen.
  • @Cleanup: Schließt Ressourcen automatisch. Besser: try-with-resources verwenden.
  • @Synchronized: Ersetzt das native synchronized-Keyword. Besser: native Java-Synchronisierung nutzen.

Die Verwendung nativer Java-Alternativen ist in diesen Fällen meist transparenter und sicherer.