String templates (JEP 430)
От: · Великобритания  
Дата: 02.08.23 13:47
Оценка: 3 (1) +1
В java выкатывают так называемые строчные шаблоны. Возможность внедрять выражения внутрь строки и интерполировать.
Идея примерно такая:
tpl."Hello, \{name}! Today is \{LocalDate.now()}."
компилятором преобразуется примерно вот в такое
tpl.process(List.of("Hello, ", "! Today is ", "."), List.of(name, LocalDate.now()))
Собственно всё. Т.е. строчка разделяется на текстовые фрагменты и захваченные значения. Дальше дело техники — можно определять свои шаблоны и любую хитрую обработку фрагментов и значений. В качестве примера приводится SQL (полный код тут):
PreparedStatement ps = DB."SELECT * FROM Person p WHERE p.last_name = \{name}";
ResultSet rs = ps.executeQuery();

Тут кастомный процессор DB создаёт из строки объект типа PreparedStatement с "?" тексте запроса и подставляет соответствующие параметры.

Вот такие макросы. Простые до безобразия, но, имхо, довольно мощные, покрывают довольно много сценариев.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 02.08.2023 13:51 · . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.