Почему некоторые символы ASCII не могут быть выражены в форме '\ uXXXX' в исходном коде Java?

Я наткнулся на это (снова) сегодня:

class Test {
    char ok = '\n';
    char okAsWell = '\u000B';
    char error = '\u000A';
}

Он не компилируется:

Неверная символьная константа в строке 4.

Компилятор, кажется, настаивает на том, чтобы я написал вместо этого \ n. Я не вижу причин для этого, но этоочень раздражает.

Есть ли логическое объяснение, почему символы, которые имеют специальные обозначения (например,\t, \n, \r) должен быть выражено в этой форме в исходном коде Java?

Ответы на вопрос(5)

Ваш ответ на вопрос