У меня есть два Java фрагменты, используя константу в случае переключения:Разница между постоянными деклараций
final Integer s1=5;
int x=5;
switch(x){
case s1: **<== causes complilation error..**
System.out.println("hello");
}
Приведенный ниже код работает нормально, как s1
трактуется как константа, в то время как выше код не работает.
final int s1=5;
int x=5;
switch(x){
case s1: <=== ok s1 is constant
System.out.println("hello");
}
В чем разница между двумя вышеуказанными декларациями?
Очень близко, но не совсем дубликат: http://stackoverflow.com/questions/4401743/why-final-static-int-can-be-used-as-a-switchs-case-constant-but- not-final-st (здесь также применяется ответ) – Thilo
Я не понимаю, в чем вопрос. Хорошо, вы видели, что одна из этих работ, а другая - нет. Вы знаете, какая разница между ними. Что именно вы спрашиваете? –
http://www.coderanch.com/t/329474/java/java/final-static-Integer-considered-constant – Thilo