Java zavádza string templates

22. 3. 2024

Sdílet

Java káva Autor: Depositphotos

Interpolácia reťazcov je populárna syntax pre dynamickú tvorbu reťazcov. Väčšina moderných programovacích jazykov podporuje interpoláciu v nejakej podobe.

Príklad pre jazyk Python:

name = 'John Doe'
age = 34

msg = f'{name} is {age} years old'

print(msg)

Java po rokoch prináša svoju obdobu interpolácie reťazcov. Pod názvom String Templates ju definuje JEP 459: String Templates (Second Preview) v najnovšej verzii Javy 22.

Okrem zjednodušenia syntaxe vytvárania reťazcov dokument zvlášť zdôrazňuje bezpečnostný aspekt, pretože táto syntax veľmi ľahko môže spôsobiť bezpečnostnú dieru.

Java má zabudované tri základné druhy template processorov: STR, FMT a RAW. Ten prvý sa nachádza v java.lang mennom priestore, preto ho netreba zvlášť importovať. Zvyšné je potrebné vložiť do súboru statickým importom.

import static java.lang.StringTemplate.RAW;
import static java.util.FormatProcessor.FMT;

void main() {

    String name = "John Doe";
    int age = 35;

    System.out.println(STR."\{name} is \{age} years old");
    System.out.println(FMT."%s\{name} is %d\{age} years old");
    System.out.println(RAW."\{name} is \{age} years old");
}

Príklad ukazuje použitie daných zabudovaných procesorov. Namiesto tradičného doláru používa syntax spätné lomítko.

$ java --enable-preview --source 22 First.java
John Doe is 35 years old
John Doe is 35 years old
StringTemplate{ fragments = [ "", " is ", " years old" ], values = [John Doe, 35] }

Ono by to nebola Java kebyže nepríde s podstatne komplexnejším riešením. String Templates umožňujú vytvoriť svoje vlastné string procesory. Toto riešenie je svojimi možnosťami niekde medzi tradičnou interpoláciou a šablónovými knižnicami, ako sú naprílad Jinjava alebo Freemarker.

Tesne pred vypustením najnovšej verzie Javy prišla informácia, že sa pre String Templates chystajú nejaké doplnky či úpravy. Preto si na konečnú syntax budeme musieť ešte nejakú chvíľu počkať.

Tato zprávička byla zaslána čtenářem serveru Root.cz pomocí formuláře Přidat zprávičku. Děkujeme!

Našli jste v článku chybu?

Autor zprávičky