GEDOPLAN
JavaJava SE

Java 23 ohne Ballast: Wie JEP 477 die Sprache für alle vereinfacht

JavaJava SE
cup 3616873 1280

Der Java Enhancement Proposal (JEP) 477 Implicitly Declared Classes and Instance Main Methods bringt frischen Wind in die Java-Entwicklung, indem er Entwicklern erlaubt, Programme ohne unnötigen Boilerplate-Code zu schreiben. Er zielt darauf ab, Java sowohl für Einsteiger zugänglicher als auch für erfahrene Entwickler effizienter zu machen. Durch die Einführung von implizit deklarierten Klassen und instanzbasierten Main-Methoden wird der Einstieg in die Sprache deutlich intuitiver.

Einfacher Einstieg: Methoden ohne Klassen

Mit JEP 477 können Entwickler einfachen Java-Code schreiben, ohne explizit Klassen oder statische main-Methoden deklarieren zu müssen. Stattdessen erlaubt der Compiler das Schreiben von Methoden ohne Deklaration einer umschließenden Klasse – das Verpacken in eine Klasse erfolgt automatisch. Zudem wird es möglich, die main-Methode als Instanzmethode zu definieren, wodurch der Code aufgeräumter und direkter wird. Diese Änderungen erleichtern insbesondere die Erstellung von kurzen Skripten und einfachen Anwendungen.

Klassiker in neuem Gewand: Hello, World!

Ein klassisches „Hello, World!“-Programm sah bisher so aus:

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello, World!");

    }

}

Ein Java-Einsteiger sieht hier eine Menge verwirrenden Quelltext, den er außerdem „erstmal ignorieren“ soll: eine Klasse, eine statische Methode, runde, eckige und geschweifte Klammern, einen Sichtbarkeitsmodifizierer und einen Methodenparameter, der obendrein gar nicht verwendet wird.

Mit JEP 477 kann dieses Programm auf das Wesentliche reduziert werden:

void main() {

    println("Hello, World!");

}

Wenn dieser Quelltext in einer Datei HelloWorld.java steht, kann das Programm folgendermaßen ausgeführt werden:

    java HelloWorld.java

Das ist alles.

Die Möglichkeit, den Compileraufruf zu überspringen, gibt es übrigens bereits seit Java 11: „JEP 330: Launch Single-File Source-Code Programs“. Ein Java-Programm, das nur aus einer einzelnen Datei besteht, kann direkt ausgeführt werden, ohne den Quelltext vorher übersetzen zu müssen.

Automatische Imports: Weniger Aufwand, mehr Übersicht

Ein weiteres Highlight von JEP 477 sind die automatischen Imports. Implizit deklarierte Klassen importieren drei neue statische Methoden – println, print und readln – aus der neuen Klasse java.io.IO, die einfache Ein- und Ausgabeoperationen ermöglichen.

Eine einfache Nutzerinteraktion kann zum Beispiel so aussehen:

void main()  {

  var name = readln("Wie ist dein Name?“);

  println("Hallo " + name);

}

Zusätzlich werden alle öffentlichen Klassen und Interfaces aus dem Modul java.base automatisch verfügbar gemacht, was unnötige Importzeilen überflüssig macht. Dazu gehören zum Beispiel die Packages java.io, java.util, java.time, java.util.stream und java.util.function.

Vom Skript zum Projekt: Schrittweise erweitern

Besonders praktisch ist, dass man klein anfangen und das Programm nach und nach erweitern kann. Eine einfache main()-Methode reicht oft für den Start. Möchte man später Funktionalitäten hinzufügen, kann man sie sinnvoll auf weitere Methoden auslagern. So bleibt der Code lesbar und leicht zu pflegen.

Wird die Datei mit der Zeit zu umfangreich, kann man den nächsten Schritt gehen und den Code auf mehrere Dateien verteilen. Die Methoden werden nach Themenbereichen gruppiert und in Klassen zusammengeführt, etwa eine InputHandler-Klasse für Eingaben oder eine Calculator-Klasse für Berechnungen.

Wenn das Programm wächst und komplexer wird, können IDEs wie IntelliJ IDEA helfen, den Überblick zu behalten. Buildwerkzeuge wie Maven oder Gradle werden nützlich, um Abhängigkeiten zu verwalten und das Projekt strukturiert aufzubauen. So muss man sich nicht sofort in die Tiefen der Softwareentwicklung stürzen, sondern kann Schritt für Schritt vorgehen – je nachdem, was gerade gebraucht wird.

Vom Preview zum – dritten Preview

Dieses Feature wurde erstmals in Java 21 als Preview eingeführt und liegt mittlerweile als dritter Preview vor. Diese mehrstufige Einführung zeigt, wie wichtig Feedback aus der Entwickler-Community für die endgültige Spezifikation ist. Neue Features werden gründlich in der Praxis getestet, bevor sie final integriert werden, um Stabilität und Qualität zu gewährleisten.

Fazit: Java wird moderner und flexibler

JEP 477 bringt vier wichtige Verbesserungen:

  • Klassendefinitionen sind optional.
  • Die main()-Methode wird deutlich vereinfacht.
  • In implizit deklarierten Klassen werden viele wichtige Pakete bereits automatisch importiert.
  • Die neue Klasse java.io.IO mit den drei automatisch importierten Methoden print(), println() und readln() vereinfacht die Ein- und Ausgabe.

Durch diese Vereinfachungen wird Java sowohl für Neulinge als auch für Profis attraktiver. JEP 477 ist ein wichtiger Schritt, um die Sprache moderner und flexibler zu gestalten, ohne dabei ihre Stärken in komplexeren Anwendungen zu verlieren. Ein Gewinn für alle, die Java lieben – und für jene, die es noch lernen wollen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

blockchain 8244279 640 jpg
zero

Angular, Directive Composition

Direktiven sind ein mächtiges Werkzeug bei der Entwicklung mit Angular, um diverse Problemstellungen generisch und wiederverwendbar zu implementieren. Ein Feature,…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!