В Java появятся блоки текста

Стало известно, что блоки текста запланированы к появлению в Java 13. Блоки текста – это многострочные литералы, в которых нет необходимости экранировать большинство специальных символов и которые форматируются предсказуемым образом. Ранее попытка введения многострочных литералов уже предпринималась в форме так называемых сырых многострочных литералов, но JEP был отвергнут в связи с большим количеством потенциальных проблем, которые может принести такой подход. Блоки же текста – это совершенно новая спецификация, лишённая большинства недостатков предыдущего подхода.

Блоки текста заключаются в тройные кавычки и позволяют в значительно более удобной форме писать многострочные выражения (HTML, SQL, JSON и т.д.) без использования конкатенации однострочных литералов, например:

String html = """
              <html>
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

Важной особенностью блоков текста является предсказуемое форматирование:

  • Все разделители строк нормализуются при компиляции: символы CR и CR+LF транслируются в LF. Это делает компиляцию независимой от платформы.
  • Ненужные символы отступа и хвостовые пробельные символы обрезаются компилятором. Это делает компиляцию блока независимой от того, сколько уровней отступа используется для индентации блока.

Java 13 выйдет в сентябре 2019 года.

Подписывайтесь на канал в Telegram, чтобы не пропускать новости.

Все материалы на этом сайте выложены под лицензией CC BY-SA 4.0
© Евгений Козлов, 2017-2024
Feed
Table of JEPs