Für das Plus an Freiheit

Java 9 – eine Einführung: Deprecation diverser Typen und Methoden

Michael Inden

© Shutterstock.com / Profit_Image

Das kürzlich erschienene Java 9 besteht aus mehr als nur Modulen und dem Projekt Jigsaw. Über 90 sogenannte JEPs (JDK Enhancement Proposals) sind Teil von Version 9 des Java Development Kits. Im elften Teil seiner Serie zu Java 9 stellt Michael Inden, Oracle-zertifizierter Java-Entwickler, die mit JDK 9 als „@deprecated“ gekennzeichneten Typen und Methoden vor.

Die vorliegende Artikelserie zu Java 9 setzt sich aus Texten von Michael Indens Buch „Java 9 – Die Neuerungen“ zusammen, das beim dpunkt.verlag erschienen ist.

PS: Verpassen Sie nicht unsere Infografik zu Project Jigsaw!

Nachdem wir im ersten Teil dieser Blog-Serie diverse kleinere Änderungen in der Syntax der Sprache Java kennengelernt haben, schauten wir uns im zweiten Teil einige relevante Erweiterungen im JDK an, konkreter: im Process-API und den Collection-Factory-Methoden. Im dritten Teil ging es anschließend um die Ergänzungen im Stream-API, im vierten Teil besprachen wir die Erweiterungen in Optional<T>. Im fünften Teil der Artikelserie standen die Erweiterungen der Java-Klasse LocalDate im Fokus, in Teil sechs war die Verarbeitung von Stackframes und der Klasse StackWalker Thema. Im siebten Teil seiner Reihe stellte Michael Inden den Taskbar-Support von Java 9 vor, in Teil acht waren die Erweiterungen des Unicode-Supports an der Reihe. Der neunte Teil der Serie ist der Unterstützung für TIFF-Grafiken gewidmet, Teil zehn dem Support von Spin-Wait-Loops. Im vorerst letzten Teil spricht Michael Inden über Typen und Methoden, die wohl bald aus Java verschwinden werden und gibt eine Übersicht über das das neue Versionsschema.

Deprecation diverser Typen und Methoden

Mit JDK 9 wurden diverse Klassen, Konstruktoren und Methoden als @Deprecated gekennzeichnet. Schauen wir uns exemplarisch einige davon an.

Deprecation der Typen „Observer“ und „Observable“

Die Typen java.util.Observer und java.util.Observer, die ursprünglich zur einfacheren Realisierung des Entwurfsmusters BEOBACHTER dienen sollten, sind nun (endlich) als @Deprecated gekennzeichnet, weil sie ein verfehltes Design darstellen. Darauf und auf das Entwurfsmuster BEOBACHTER gehe ich in meinem Buch „Der Weg zum Java-Profi“ im Detail ein.

@Deprecated(since="9")
public interface Observer {
...
}

@Deprecated(since="9")
public class Observable {
...
}

Im Listing sieht man die Angabe von since in der @Deprecated-Annotation als neues Sprachfeatures in Java 9 wie es schon im ersten Teil der Blog-Serie besprochen wurde.

Deprecation von Methoden in der Klasse „Thread“

Die Klasse Thread bietet eine Abstraktion für Threads des Betriebssystems und erlaubt die nebenläufige Programmierung. Jedoch besitzt die Klasse ein paar Methoden, die problematisch in ihrer Handhabung sind. Mit JDK 9 sind demnach die Methoden destroy() und stop() mit einer @Deprecated-Annotation versehen.

JEP 223: Änderung des Versionsschemas

Bisher war die Versionierung der JDKs mitunter ein wenig verwirrend: Allein anhand der Versionsnummer fiel es extrem schwer, zwischen Minor Releases und Security Updates zu unterscheiden. Auch sind in der Nummerierung die Varianten 8 und 1.8 gebräuchlich. Bei Updates findet man dann sogar Varianten wie z. B. 1.7.0_55-b13, JDK 7u55 oder JDK 7 Update 55.

Dies wird nun mit JDK 9 vereinheitlicht und vor allem lassen sich Minor Releases und Critical Patch Updates viel klarer voneinander abgrenzen. Dazu kommt folgendes Versionsschema zum Einsatz: MAJOR.MINOR.SECURITY. Insbesondere wird der Ballast der führenden 1, aus dem Versionsschema entfernt. Die Ziffer 1 war eigentlich nur hinderlich, weil 1.8 ja die Versionsnummer 8 repräsentiert. Gleiches gilt auch für die Ergänzung um das u in der Versionskennung, das für Update steht.

Version Bedeutung Inhalt
9 GA (General Availability)
9.0.1 CPU (Critical Patch Update) 9 + critical changes
9.1.1 Minor Release 9.0.1 + other changes
9.1.2 CPU 9.1.1 + critical changes
9.2.2 Minor Release 9.1.2 + other changes
9.2.3 CPU 9.2.2 + critical changes

Fazit

Java 9 enthält eine Vielzahl sinnvoller und praktischer Neuerungen und Ergänzungen in bestehenden APIs. Viele alltägliche Programmieraufgaben lassen sich dadurch noch ein wenig eleganter und kürzer als mit Java 8 realisieren. Java 9 stellt einen würdigen Nachfolger von Java 8 dar und die Java-Programmierung wird damit auch für die Zukunft für viele Entwickler und Firmen attraktiv sein.

Java 9 – Die NeuerungenMichael Indens Buch bietet einen fundierten Einstieg in Java 9 sowie einen Überblick über die umfangreichen Neuerungen in der aktuellen Version. Damit eignet sich das Buch für all jene, die ihr Java-Wissen aktualisieren wollen. Dabei helfen eine Vielzahl an Übungen, um die einzelnen Themengebiete zu vertiefen und besser zu verstehen.

Neben Änderungen an der Sprache bilden auch die Erweiterungen in diversen APIs einen Schwerpunkt. Fehlen darf hier natürlich auch nicht ein Kapitel über die fundamentalste Änderung in Java 9: Project Jigsaw. Auch fortgeschrittenere Themen wie Services und die Migration bestehender Applikationen werden besprochen. Da Java 9 auch einige Auswirkungen auf Build Tools und IDEs mit sich bringt, gibt ein Kapitel einen Überblick über den derzeitigen Stand zum Tooling rund um die neue Java-Version.

Weitere Informationenen zum Buch gibt es hier!

Verwandte Themen:

Geschrieben von
Michael Inden
Michael Inden
Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler für JDK 6. Nach seinem Studium in Oldenburg war er lange Zeit als Softwareentwickler und -architekt bei verschiedenen internationalen Firmen tätig und arbeitet derzeit als Teamleiter Softwareentwicklung in Zürich. Michael Inden hat rund 20 Jahre Erfahrung beim Entwurf komplexer Softwaresysteme gesammelt, an diversen Fortbildungen und an mehreren Java-One-Konferenzen in San Francisco teilgenommen. Sein Wissen gibt er gerne als Trainer in Schulungen und auf Konferenzen weiter. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen mit ergonomischen, grafischen Oberflächen sowie dem Coaching von Kollegen.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: