Was ist ein Text Block?

Mehrzeilige Strings? Neuer JEP Draft schlägt den Typ Text Block für Java vor

Florian Roos

© Shutterstock / Alexander Ryabintsev

Ein neuer JEP Draft schlägt vor, die Programmiersprache Java mit dem Format Text Block um mehrzeilige String-Literale zu erweitern. Angedacht ist dabei, dass die Formatierung eines Textblocks einem vorhersagbaren Muster unterliegt und bei Bedarf durch Entwickler modifiziert werden kann.

Die im Vorschlag beschriebenen Textblöcke sollen, dem entsprechenden JEP Draft zufolge, mehrzeilige String-Literale darstellen. Ihre Formatierung soll einheitlichen Regeln unterliegen und sich an der Darstellung des Texts im Quellcode orientieren, sodass Entwickler nicht zwingend auf Befehle zurückgreifen müssen, um das Layout des Texts zu beeinflussen. Bei dem neuen Entwurf handelt es sich um eine Fortführung der Überlegungen aus JEP 326 (wir berichteten).

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.

Text Block in der Praxis

Innerhalb des Entwurfs wird die Darstellung vom simplem HTML in traditionellen Strings mit der Darstellung der gleichen HTML-Befehle in einem Text Block verglichen:

Using "one-dimensional" string literals
String html = "<html>\n" +
              "    <body>\n" +
              "        <p>Hello, world</p>\n" +
              "    </body>\n" +
              "</html>\n";

Using a "two-dimensional" block of text
String html = """
              <html>
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

Wenn Entwickler einen Text Block händisch bearbeiten wollen, sollen hierfür die selben Möglichkeiten bestehen wie für die hinlänglich bekannten Strings. Ein neuer Referenz-Typ jenseits von java.lang.String soll nicht definiert werden – die neuen Textblöcke sollen auf dem Standard-String aufbauen. Dementsprechend gehört es zu den erklärten Non-Goals dieses JEPs, neue Operatoren zu definieren, die Strings als Operanden akzeptieren.

Die ausführliche Beschreibung und Begründung des von Jim Laskey eingereichten und von Brian Goetz unterstützten Vorschlags kann online eingesehen werden. Darin befinden sich weitere Beispiele, welche die Abbildung von Nicht-Java-Code in traditionellen Strings mit derjenigen in einem Text Block vergleichen.

Verwandte Themen:

Geschrieben von
Florian Roos
Florian Roos
Florian Roos ist Redakteur für Software & Support Media. Er hat Politikwissenschaft an der Technischen Universität Darmstadt studiert und erste redaktionelle Erfahrungen in den Bereichen Games und Consumer-Hardware gesammelt.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: