Meine Straße, mein Zuhause, mein Block

JEP 378: Text Blocks (Standard)

Dominik Mohilo

© Software & Support Media GmbH / Bianca Röder

In Java 13 war JEP 355 als Preview-Feature enthalten, mit dem der neue Typ Text Block eingeführt werden sollte. Nach einem langen Reifeprozess sieht es nun so aus, als würden Text Blocks in Java 15, dank JEP 378 endlich zum Standard gehören…

Die Bemühungen des ursprünglichen JEPs für die Text-Blöcke basierten auf den Grundlagen, die bereits für JEP 326 und die Raw String Literals geschaffen wurden. Die im Vorschlag beschriebenen Textblöcke sollen mehrzeilige String-Literale darstellen. Ihre Formatierung unterliegt einheitlichen Regeln und orientiert sich an der Darstellung des Texts im Quellcode, sodass Entwickler nicht zwingend auf Befehle zurückgreifen müssen, um das Layout des Texts zu beeinflussen. Den kompletten Style Guide zu Text Blocks haben Jim Laskey und Stuart Marks verfasst und er ist auf JAXenter zu finden, In seinem Artikel „Textblöcke in Java 13: Warum sich das lange Warten gelohnt hat“ geht Tim Zöller auf das Feature genauer ein.

Lesen Sie auch: Java Tutorial: Eine Einführung in Text Blocks und offizieller Style Guide

Zu den Zielen, die mit der Einführung von Text Block verbunden werden, gehört unter anderem das leichtere Gestalten mehrzeiliger Strings für Programmierer. Durch die Regeln zur automatischen Formatierung wären bei einer Einführung des Typs keine Escape-Sequenzen im Stil von \n nötig. Insbesondere solche Java-Programme, die Code anderer Programmiersprachen innerhalb von Strings enthalten, sollen mit dem neuen Format besser lesbar werden. JEP 368, enthalten in Java 14, brachte, basierend auf Nutzer-Feedback, zwei neue Escape-Sequenzen für dieses Feature, die eine feingranulare Kontrolle der Verarbeitung von Newlines und Whitespaces erlauben: \<line-terminator> und \s. Erstere Escape-Sequenz kann genutzt werden, um einen Umbruch für sehr lange String-Literale zu forcieren, ohne diese in kleinere „Substrings“ aufzuteilen.

Nun folgt mit JEP 378: Text Blocks (Standard) die offizielle Einführung als Standard in Java 15. Technisch sieht das Feature wie folgt aus:

Ohne \<line-terminator> Escape-Sequenz:

String literal = "Lorem ipsum dolor sit amet, consectetur adipiscing " +
                 "elit, sed do eiusmod tempor incididunt ut labore " +
                 "et dolore magna aliqua.";

Mit \<line-terminator> Escape-Sequenz:

String text = """
                Lorem ipsum dolor sit amet, consectetur adipiscing \
                elit, sed do eiusmod tempor incididunt ut labore \
                et dolore magna aliqua.\
                """;

Die Escape-Sequenz \s lässt sich einfach als einzelnes Leerzeichen (\u0020) beschreiben. Damit lässt sich im unteren Beispiel sicherstellen, dass die Zeilen exakt 6 Stellen haben und nicht länger sind:

String colors = """
    red  \s
    green\s
    blue \s
    """;

Diese Escape-Sequenz kann in den neuen Text Blocks, aber auch in klassischen String-Literalen genutzt werden.

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: