Одним из нововведений, которые могут появиться в 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.