Wie kann Boilerplate Code in Java reduziert werden?

Das geht mit dem Lombok Projekt.

Wie kann Boilerplate Code in Java reduziert werden?

Für eine Java-Daten Klasse z.B. Arzt

@Data
public class Arzt {

	private String titel;

	private String vorname;

	private String name;

}

wird dann automatisch folgendes generiert:

Wie kann Boilerplate Code in Java reduziert werden?
Es werden also alle Getter, Setter, ToString, HashCode, Equals und Konstruktoren erzeugt aber nicht in der Klasse direkt eingefügt. Die bleibt also immer übersichtlich.

Damit das automatisch funktioniert braucht man nur die pom.xml um diese eine Abhängigkeit ergänzen:

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

Dann muss für die Eclipse IDE einmal das lombok Setup ausgeführt werden. Dazu ein doppelklick auf das lombok.jar. Wenn die IDE nicht im Install-Dialog angezeig wird, muss das für den Mac OS X das Verzeichnis mit der eclipse.ini ausgewählt werden. Diese Installation muss nur einmal pro IDE ausgeführt werden. Und diese Abhängigkeit ist zugleich auch der Nachteil.

Wie kann Boilerplate Code in Java reduziert werden?
Dann kommt der Erfolgsdialog mit einigen Hinweisen:

Wie kann Boilerplate Code in Java reduziert werden?

Nun muss nur noch die Eclipse IDE restartet werden. Schon kann man auf die Methoden zugreifen, ohne das die Klasse aufgebläht wird.

Hier die Testklasse dazu:

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class ArztTest {

	@Test
	public void namensTest() {
		Arzt arzt = new Arzt();
		arzt.setName("");
		assertEquals("", arzt.getName());
	}

	@Test
	public void toStringTest() {
		Arzt arzt = new Arzt();
		arzt.setName("Wenzlaff");
		arzt.setVorname("Thomas");
		assertEquals("Arzt(titel=null, vorname=Thomas, name=Wenzlaff)", arzt.toString());
	}

}

Das Java 1.8 Projekt sieht dann so aus:

Wie kann Boilerplate Code in Java reduziert werden?

Und wie ist die Testabdeckung? Natürlich 100% 😉

Wie kann Boilerplate Code in Java reduziert werden?

Weitere Beispiele wie z.B. NotNull Check usw. hier. Wer das Testprojekt laden will, kann es hier als lombok-wenzlaff-de-beispiel.zip laden.

Ähnliche Artikel:

  1. Anzahl der Flugzeuge mit 3 Zeilen Java Code ausgeben via REST API mit Jersey und JDom 2.0
  2. Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)
  3. Java 7 ist DA!

wallpaper-1019588
Possibly the Greatest Alchemist of All Time: Anime-Adaption angekündigt
wallpaper-1019588
Sword of the Demon Hunter: Starttermin bekannt + Visual
wallpaper-1019588
#1513 [Review] Manga ~ P × P
wallpaper-1019588
Sind die Flughafen-Lounges den Hype wert?