Я сделал сумасшедшее открытие сегодня на Java, и я хотел бы знать, почему.Почему не все конечные константные строки создаются равными в java
Следующая инструкция Переключатель работы
public static final String OTHER_OTHER = ”.otherOther”;
…
switch (SWITCHER) {
case Dogs.OTHER_OTHER:
doMyWork(intent);
break;
default:
...;
}
Не удается скомпилировать
public static final String OTHER_OTHER = Dogs.class.getPackage().toString()+”.otherOther”;
…
switch (SWITCHER) {
case Dogs.OTHER_OTHER:
doMyWork(intent);
break;
default:
...;
}
Единственное различие между этими двумя отрывками в том, как я построил постоянную OTHER_OTHER
второй оператор switch заявляет, что OTHER_OT ЕЕ не является константой. Я создаю строку всего, используя final
.
Является ли OTHER_OTHER одинаковым для обоих значений. –
У меня вопрос не возникает. Я создаю String, используя 'final String', что не делает его константой? –
Что означает «не работает»? Не компилируется? Производит неожиданный результат? –