Nichts als der Zustand!

JEP 384: Records (Zweite Preview)

Dominik Mohilo

© Software & Support Media GmbH / Bianca Röder

Java 15 wird zwar nicht das endgültige Release der Records (JEP 384) bringen, aber bereits eine zweite Preview für den neuen Klassentyp. Diese Klassentypen zeichnen sich durch eine sehr hohe Präzision aus und reduzieren die „Klasse“ auf den Zustand. Instanzfelder? Erweiterung anderer Klassen? Nicht möglich.

JEP 384 bringt Records als „Second Preview“ für Java. Bei Records handelt es sich um einen neuen Klassentyp, der im Zuge des Projektes Valhalla entwickelt wurde. Diese stellen – wie beispielsweise auch enums – eine eingeschränkte Form der Deklaration class dar. Records unterscheiden sich von klassischen Klassen darin, dass sie ihr API nicht von dessen Repräsentation entkoppeln können. Die Freiheit die dabei verloren geht, wird aber durch die gewonnene Präzision wettgemacht.

Im Proposal zu den Records hieß es dazu, dass ein Record „der Zustand, der gesamte Zustand und nichts als der Zustand“ sei. Er besteht aus einem Namen, einem Header und dem Body:

record Point(int x, int y) { }

Der Header stellt hier die Liste der Komponenten des Records dar, also die Variablen, die den Zustand beschreiben. Records bleiben dabei Klassen, auch wenn sie eingeschränkt sind. So können sie etwa Annotationen oder Javadocs enthalten und deren Body u.a. statische Felder sowie Methoden, Konstruktoren oder Instanzmethoden deklarieren. Was sie allerdings nicht vermögen, ist die Erweiterung anderer Klassen oder die Deklaration von Instanzfeldern (mit der Ausnahme der Statuskomponenten, die im Header des Records deklariert wurden).

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: