0
public class SwitchTest {
public static void main(String[] args) {
Integer i = new Integer(2) + new Integer(2);
switch(i){
case 4: System.out.println("foo"); break;
default: System.out.println("default"); break;
}
}
}
정수 i는 final으로 표시되지 않습니다. (저는 자바의 초보자입니다.)비 최종 변수는 어떻게 스위치 상수가 될 수 있습니까?
여기서 i는 "스위치 상수"가 아니며 켜져있는 변수입니다. 그것은'if'와 마찬가지로 현재 값을 바꿀 것입니다. – lmm
스위치 매개 변수가 final 일 필요는 없습니다. 귀하의 환경에서 어떤 것이 올바르지 않습니다. –
'switch (new Random(). nextInt())'를 아무런 문제없이 쓸 수 있습니다. 그러나'case new'는 * 컴파일 타임 상수 *가 필요하기 때문에'case Random(). nextInt() :'를 쓸 수 없습니다. – Tom