Natknąłem się na to (znowu) dzisiaj:Dlaczego niektóre znaki ASCII nie mogą być wyrażone w postaci " uXXXX" w kodzie źródłowym Java?
class Test {
char ok = '\n';
char okAsWell = '\u000B';
char error = '\u000A';
}
To nie kompiluje:
Nieprawidłowa stała postać w kolejce 4.
Kompilator wydaje się upierają, że piszę zamiast tego "\ n". Nie widzę powodu, by to irytować.
Czy istnieje logiczne wytłumaczenie dlaczego znaki, które mają specjalną notację (jak \t
, \n
, \r
) musi być wyrażone w tej formie w źródle Java?
Można wymienić wszystkie źródła w kodzie z '\ uXXXX' sekwencje sprawiają, że jest on nieczytelny, ale kompiluje się dobrze, ponieważ przekształca wszystko w tekst przed kompilacją. –