JEP Adventskalender #7

JEP 359 – Records (Preview)

Dominik Mohilo

A JEP a day keeps the Christmas blues away! Frei nach diesem Motto stellen wir euch in diesem Jahr zwischen den Jahren sämtliche JEPs der kommenden Java-Version vor. Ganze 16 JEPs haben es in Java 14 geschafft, deutlich mehr als es in den vorigen Versionen Java 12 und Java 13 vertreten waren (8 bzw. 5 JEPs).

Das Jahr 2019 brachte uns Java 12 und Java 13, allerdings waren diese Versionen unserer liebsten Programmiersprache nicht besonders umfangreich, was neue Features betrifft. Größe ist nicht immer der entscheidende Faktor, dennoch waren JDK 12 und 13 nicht vergleichbar mit etwa Java 8 oder Java 9. Dies liegt natürlich auch am neuen Releasezyklus und muss nicht zwangsläufig etwas Negatives sein – im Gegenteil: steter und gleichmäßiger Fortschritt ist einem großen Klotz an neuen Funktionen (und Problemen) von Zeit zu Zeit durchaus vorzuziehen.

Java 14 wird nun aller Voraussicht nach ein wenig „dicker“. Grund genug für uns hier bei JAXenter, über die enthaltenen JEPs zu berichten. Zudem steht Weihnachten vor der Tür! Santa Duke is coming to town – Schauen wir uns einmal an, was er in seinem Geschenkesack hat…

Lesen Sie auch: Java 14: Das JDK ist in der Rampdown-Phase

JEP 358 – JEP 359 – Records (Preview)

JEP 359 bringt Records als Preview-Feature für Java. Bei Records handelt es sich um einen neuen Typ, 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, der Statusbeschreibung und dem Body:

record Point(int x, int y) { }

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).

Java Whitepaper

Gratis-Dossier: Java 2020 – State of the Art

GraalVM, Spring Boot 2.2, Kubernetes, Domain-driven Design & Machine Learning sind einige der Themen, die Sie in unserem brandneuen Dossier 2020 wiederfinden werden!

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: