마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

final 변수 수정에 관하여

0 추천

int BOX;

private static final int B=100001; --------------1번

 

switch(BOX){

case B: 블라블라                          ----------------2번

}

위와 같이 작성된 코드가 있습니다. 그런데 이때 제가 1번 부분에서 final키워드를 빼고private static  int B=100001 이와 같이 코드를 수정했더니 2번 부분에 B서 에러가 발생합니다 Link all references for a local rename 이와 같이 뜹니다.

 

이해를 할수 없습니다. 선언 값을 바꿔 주면 다른 곳에서 사용 되는 변수들도 당현히 선언된 변수에 따라 속성값도 바뀌어야 하는게 아닌가요;;

밥먹자 (550 포인트) 님이 2013년 5월 26일 질문

1개의 답변

0 추천
 
채택된 답변
case문은 상수만 와야 됩니다.

case엔 변수가 오면 에러가나므로 final을 붙여줘야됩니다.

간단히 생각해보면

swich(id)

case abc:

case bcd:

case cdf:

 

이런식으로 나왔는데 abc bcd cdf가 계속 바뀌면 항상 필터링되는 스위치문의 안정성이 떨어지겟죠.

일단 문법에서 case는 항상 고정되는 값을 넣도록 했기떄문에 상수나 final을 붙여줘야됩니다.

 

변수 수정을 하려면 switch문 안에 들어가는 변수를 수정하시면 됩니다.
기초개발자 (24,060 포인트) 님이 2013년 5월 26일 답변
밥먹자님이 2013년 5월 26일 채택됨
...