Weniger Boilerplatecode mit Projekt Lombok

Das Generieren von Code mit dem Projekt Lombok verspricht deutlich wenig Boilerplate-Code in Java. Das kennt man sonst nur aus alternativen JVM-Sprachen wie Groovy mit den GroovyBeans und seiner Art der Compile Time Metaprogrammierung, den AST Transformationen.

Bei Projekt Lombok werden beim Kompilieren angehängte Annotationen ausgewertet und ebenfalls der Abstract Syntax Tree (AST) angepaßt, ehe der Bytecode erzeugt wird. Dieser zusätzliche Compileschritt läßt sich ohne Probleme in die gängigen Buildwerkzeuge (Ant, Maven) und auch Eclipse integrieren.

Mit @Getter bzw. @Setter kann man beispielsweise auf Klassen- oder Feld-Ebene automatisch im Bytecode die gleichnamigen Zugriffsmethoden generieren lassen, ohne daß ihr Präsenz den Quellcode unübersichtlich macht.

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;

public class GetterSetterExample {
@Getter @Setter private int age = 10;
@Setter(AccessLevel.PROTECTED) private String name;

@Override public String toString() {
return String.format("%s (age: %d)", name, age);
}
}

Weitere nützliche Generatoren sind @ToString, @Log und @Delegate. Es gibt auch die Möglichkeit, mittels “delombok” die Annotation dauerhaft durch den echten Quellcode zu ersetzen. Weitere Informationen gibt es in der Feature-Liste und in dieser Einführung.

Die Sinnhaftigkeit und Zukunftssicherheit von Lombok wurde auch schon auf Stackoverflow diskutiert.

Short URL for this post: http://wp.me/p4nxik-17O
This entry was posted in Did you know?, Java and Quality, Java Basics and tagged , , , , , , . Bookmark the permalink.

One Response to Weniger Boilerplatecode mit Projekt Lombok

  1. Sebastian Damm Sebastian Damm says:

    Nützlich ist auch die Annotation @Data, die automatisch alle Getter/Setter, equals und hashcode generiert.

Leave a Reply