El problema es que el reemplazo Unicode se realiza muy temprano en la compilación. Los escapes Unicode no son solo válidos en cadenas y literales de caracteres (como otras secuencias de escape como \t
) - son válidos en cualquier parte en el código. Se describen en un área diferente de la especificación: section 3.3 en lugar de section 3.10.6; solo el último es acerca de caracteres y cadena literal secuencias de escape.
Básicamente, la sección 3 de la especificación de lectura para más detalles sobre la estructura léxica :)
lo que el código se realidad equivalente a:
public class Test {
public static void main(String argv[]) {
System.out.println("
");
}
}
... que claramente no es válida código. Para retorno de carro y avance de línea, básicamente es mejor utilizar las secuencias de escape "\ r" y "\ n".
Personalmente ver esta manipulación de Unicode escapar como un defecto en Java, pero no hay mucho que podamos hacer al respecto ahora :(
Alguien podría poner un video tutorial serial como Khan Academy basado en las respuestas de Jon Skeet. El respeto. –
muchas gracias! – daf