final 을 추가 하지 않 으 면 Cannot find the field dataViewMap in HomeConstant

2007 단어 final
오늘 프로그램 에 이상 한 문제 가 발생 했 습 니 다. 바로 제 페이지 가 갑자기 데 이 터 를 표시 하지 않 았 습 니 다. 프론트 데스크 톱 배경 이 잘못 보고 되 지 않 았 습 니 다. 아무리 디 버 깅 js, alert () 를 해도 물건 이 나 오지 않 았 습 니 다. 코드 를 반복 해서 보 니 페이지 에 데 이 터 를 불 러 올 때 판단 이 있 었 습 니 다. user. showTabPage 의 값 을 판단 하고 그 값 에 따라 페이지 를 표시 하기 로 결 정 했 습 니 다. 저 는 이 user 가 session 에 쓰 여 있 는 것 을 발 견 했 습 니 다.로그 인 방법 에서 찾 아 보 겠 습 니 다. 쇼 TabPage 에 값 을 부여 하 는 방법 을 찾 았 는데 이런 코드 가 있 었 습 니 다.
String showTabPage = HomeConstant.dataViewMap.get(user.getRoleName());

 
    이 코드 debug 에서 HomeConstatnt. dataViewMap 을 선택 하면 콘 솔 에 이상 이 표 시 됩 니 다.
Cannot find the field dataViewMap in HomeConstant

 
    나 는 HomeConstant. dataViewMap 의 정 의 를 찾 았 는데 이런 코드 가 있 는 것 을 발견 했다.
   
public static Map<String,String> dataViewMap = new HashMap<String, String>();
	static {
		dataViewMap.put("all", "ALL");	
		
		dataViewMap.put(M_BBS, "BBS");	
		dataViewMap.put(M_JYW, "JYW");	
		dataViewMap.put(M_XX, "XX");		
		
		dataViewMap.put(S_COMPANY, "BBS");
		dataViewMap.put(S_TEAM, "JYW");		
		dataViewMap.put(S_CAMPUS, "XX"); 	
	}

 그리고 나 서 나 는 이 변 수 를 정의 할 때 final 을 붙 이지 않 았 는 지 생각 했다. 그래서 나 는 정 의 를 이렇게 바 꾸 었 다.
public static final Map<String,String> dataViewMap = new HashMap<String, String>();

 
다시 실행 하면 HomeConstant. dataViewMap 은 가치 가 있 습 니 다. 더 이상 잘못 보고 하지 않 습 니 다. final 을 추가 하지 않 아서 발생 한 것 같 습 니 다. 구체 적 인 원인 은 나중에 설명 하 겠 습 니 다.
 
PS: final 을 더 한 후에 실 행 했 을 때 오 류 를 보고 하지 않 았 고 나중에 이 오 류 를 보고 하기 시 작 했 습 니 다. 이 오 류 는 final 에 의 한 것 이 아니 라 나중에 이 오 류 를 초래 한 원인 이 비교적 복잡 하 다 고 판단 할 수 있 습 니 다. 하 나 는 제 로 컬 컴 파일 러 에 문제 가 생 겨 서 코드 를 정확하게 컴 파일 할 수 없습니다. 다른 하 나 는 class 파일 의 출력 디 렉 터 리 가 정확하게 출력 되 지 못 하고 해결 방안 은 workspace 를 전환 하 는 것 입 니 다.코드 를 다시 내리 고 출력 경 로 를 다시 설정 합 니 다.

좋은 웹페이지 즐겨찾기