null

Java 11 и "Многострочные строки"

Одним из нововведений, которые могут появиться в Java 11 являются Raw String Literals. Этот новый тип строковых литералов позволяет удобно определить "многострочные строки".

Давайте рассмотрим пример. Пусть в java-программе нам необходимо получить следующую строку:

Текст,
расположенный
на нескольких строках.

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

String bigString = "Текст,\n" +
                            "расположенный\n" +
                            "на нескольких строках\n";

В некоторых других JVM-языках есть возможность записать такой текст напрямую, без вспомогательных символов и последовательностей. Например, в Scala представленная выше строка может выглядеть следующим образом:

val bigString = """Текст,
расположенный
на нескольких строках"""

Как видно из примера, воспринимается такая строка значительно проще, так как она содержит только символы, относящиеся к содержанию данной строки. Если данная возможность появиться в Java, то подобную строку можно будет определить так (один из возможных вариантов будущего синтаксиса):

String bigString = `Текст,
расположенный
на нескольких строках`;

Raw string literal представляет собой последовательность символов, заключенную в ` `.

Одной из особенностью таких строк является, что в них не интерпретируются escape-последовательностей. В связи с такой особенностью, использование Raw String Literals позволяет сделать строки, содержащие пути, более читаемыми. Вместо:

String somePath = "C:\\Program Files\\foo";

Можно будет описать строку, содержащую путь, следующим образом:

String somePath = `C:\Program Files\foo`;

Данная возможность планируется к появлению в Java 11. На текущий момент статус этого нововведения (JEP 326) - candidate.