Java에서이 이상한 것을 발견했습니다. 코딩하는 동안 실수로 Map을 인스턴스화하는 것을 잊었습니다. 데이터를 퍼팅하는 동안 모든 것이 오류가 없었습니다. 그러나 그것을 얻었을 때 나는 명백한 NullPointerException을 얻었습니다. 다음은 내가 사용한 코드 조각입니다.데이터를 null에 넣습니다.
public class Loader {
private static Map<String, Object> map;
public static load() {
//...
// read lines and put them into map
map.put(line, new Object()); // <-- NO ERROR
//...
}
public static parse(){
//...
for(...){
map.get(key); //<-- ERROR on map (NullPointerException)
}
//...
}
}
제공된 코드는 스텁이며 이상한 맵 동작을 보여주기위한 것입니다. 그렇다면 왜 null에 데이터를 삽입 할 수 있습니까? Java * 1.6.0_29 *를 사용하고 있습니다.
이 코드는 완전하며지도는 초기화되지 않습니다. 코드가 완료되었습니다.
a) map.put에 도달 할 때까지 map이 null이 아니거나 b) 그 행을 실행하지 않아도됩니다. – assylias
왜'load' 메소드가 호출 된 것 같습니까? – Roman
'map.put'과'map.get' 앞뒤에'sysout'을하면 어떨까요? –