Java 응용 프로그램에서 이상한 동작이 표시되고 솔루션을 찾는 데 문제가 있습니다.LinkedHashMap을 읽을 때 Java가 String에서 Integer로 자동 캐스팅되는 이유
이 코드 조각은 키와 값이 모두 String
이고 텍스트 파일에 쓰기위한 LinkedHashMap
의 내용을 사용합니다. configWriter
은 PrintWriter
입니다.
for (Map.Entry<String, String> entry : configMap.entireSet()) {
configWriter.println(entry.getKey() + "=" + entry.getValue());
}
지도 선언했다 :
LinkedHashMap<String, String> configMap = new LinkedHashMap<String, String>();
는 그것은 Scanner
클래스를 사용하여 텍스트 파일에서 토큰을 읽어 채워집니다. 지도에있는 값의
하나는 숫자 만 (정수)를 포함하는 String
이지만, 루프가이 값에 도달 할 때, 당신이 Integer
에서 String
에 캐스트 할 수없는 말하는 ClassCastException
가 발생합니다. 이것은 완벽하게 이해할 수 있지만 값의 유형은 String입니다.
Java가이 값을 String
으로 유지하도록 강제 할 수 있습니까?
'configMap' 선언을 표시 할 수 있습니까? 이것은 rawtypes가 어딘가에서 사용 된 것처럼 들리며 맵은 실제로 모든 'String'을 포함하지 않습니다. –
또한 스택 추적이 도움이 될 수 있습니다. –
질문을 편집하십시오. 정보를 주석으로 추가하지 마십시오. –