Проблема в том, что замена Unicode выполняется очень рано в процессе компиляции. Выделения Unicode не только действительны в строках и символьных литералах (как и другие управляющие последовательности, такие как \t
) - они действительны в любом месте в коде. Они описаны в другой области спецификации - section 3.3, а не section 3.10.6; только последний составляет около символ и строковый литерал escape-последовательности.
В основном, прочитайте раздел 3 спецификации для получения более подробной информации о лексической структуре :)
Так что ваш код был фактически эквивалентно:
public class Test {
public static void main(String argv[]) {
System.out.println("
");
}
}
... который явно не действует код. Для возврата каретки и подачи строки в основном лучше использовать escape-последовательности «\ r» и «\ n».
Лично я рассматриваю эту обработку Unicode вытекающее как недостаток в Java, но там не много мы можем сделать это сейчас :(
Кто-то может поставить видео-учебник, как Академия Хана, на основе ответов Йона Скита. Уважение. –
спасибо большое! – daf