GEDOPLAN
JavaJava SE

Von Preview zu Final: Compact Source Files und Instance Main Methods in Java 25

JavaJava SE
montemari poplars 473295 1280

Was bisher geschah

In unserem Blogpost zu Java 23 haben wir uns angeschaut, wie „Implicitly Declared Classes and Instance Main Methods“ die Einstiegshürde für Java niedriger setzt und fortgeschritteneren Entwicklern erlaubt, insbesondere beim Erstellen von Skripten mit Java auf unnötigen Boilerplate-Code zu verzichten. Mit Java 25 wurde das Feature nun finalisiert und umbenannt zu „Compact Source Files and Instance Main Methods“.

Die Zielgruppe sind weniger Entwickler von typischen Anwendungen mit Quarkus, Spring Boot oder Jakarta EE – das Ganze richtet sich eher an Einsteiger, die mit Java 25 starten möchten, an Profis, die mit Java Skripte erstellen wollen und an Lehrende, die ihr Material vervollständigen möchten.

Hello World – früher und heute

Zur Erinnerung hier das klassische Hello-World-Beispiel. Vor Java 23 sah das so aus:

public class HelloWorld {
 
    public static void main(String[] args) {
 
        System.out.println("Hello, World!");
 
    }
 
}

Jetzt lässt sich dieser Code auf das Wesentliche reduzieren:

void main() {
 
    IO.println("Hello, World!");
 
}

Keine Klassendeklaration, keine Imports, einfachere Ein- und Ausgabe, keine unnötige Zeremonie für Sichtbarkeit oder Parameter, die eh nicht benötigt werden.

Was sich ändert

In Java 23 befand sich das Feature im dritten Preview. Nach einem vierten Preview in Java 24 ist es nun in Java 25 finalisiert. Neben der Umbenennung gab es im Wesentlichen noch eine kleine Änderung:

Die Klasse IO mit ihren Methoden print(), println() und readln() wurde von java.io nach java.lang verschoben und wird dadurch automatisch importiert.

Zwar basieren diese Methoden nun intern nicht mehr auf der Klasse java.io.Console, sondern verwenden direkt System.in und System.out, aber das ist im typischen Entwickleralltag nicht relevant.

Wer bisher System.out.println() in einer Methode seiner Spring-Boot-Anwendung verwendet hat, wird auch mit IO.println() die gleichen Probleme haben wie bisher. Die blockierende Ausgabe wird bei vielen parallelen Aufrufen schnell zum Flaschenhals, weder Ausgabeformat noch Ziel können konfiguriert werden, es gibt keinen Kontext, und in Tests kann die Ausgabe nicht abgeschaltet werden. Ein Logging-Framework ist hier die sinnvolle Wahl.

Lediglich bei der Entwicklung in IDEs und in CI-Pipelines ist ein Unterschied erkennbar: System.out ist immer verfügbar, Console nur beim Start in einem echten Terminal.

Was bleibt

Was erhalten bleibt, ist der automatische Import des gesamten Moduls java.base. Es können also Klassen aus vielen Paketen direkt ohne Imports verwendet werden: java.io, java.time, java.util – mit jeweils all ihren Unterpaketen. Das verkürzt die Quelldateien und erleichtert die Lesbarkeit.

Fazit

Nach vier Preview-Runden ist das Feature „JEP 512: Compact Source Files and Instance Main Methods“ nun stabil und kann damit in der Produktion eingesetzt werden, und auch die Einstiegshürde für Java-Neulinge wird weiter gesenkt.

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

IT-Training - GEDOPLAN
Webprogrammierung

Angular Directive, Hostbinding

Directive sind neben Komponenten eines der zentralen Konzepte in Angular. Anders als Components bringt eine Directive kein eigenes Template mit,…
i18n 1
Webprogrammierung

Angular, i18n

Internationalisierung. Eine typische Aufgaben bei der Implementierung von Web-Anwendungen. Diese Anforderung macht auch vor Angular nicht halt. Hier bieten sich…

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!