Следующий сегмент кода вызывает ошибку времени компиляции.конечные символы в Java
char c = 'c';
char d = c + 5;
Ошибка на второй линии говорит
possible loss of precision
required: char
found: int
Сообщение об ошибке на основе IDE NetBeans.
Когда этот символ c
объявлен final
как следующим образом.
final char c = 'c';
char d = c + 5;
Ошибка компилятора-времени.
Это не имеет никакого отношения к случаю final strings
Что модификатор final
сделать разницу здесь?
Является ли компилятор достаточно умным, чтобы увидеть, что во втором случае константа 'c + 5' является постоянной? – vikingsteve
Хороший вопрос, ответ должен быть где-то в JLS ... Подождем, пока кто-нибудь так хорошо его найдет. – skiwi
Отметьте [этот ответ] (http://stackoverflow.com/a/21187200/1686291) –