Код: Выделить всё
import java.util.HashMap;
import java.util.Map;
public class HashMapProblem {
public static void main(String[] args) {
Map myMap = new HashMap();
// Populate the map (assume this part works correctly)
myMap.put("key1", new MyObject("value1"));
myMap.put("key2", new MyObject("value2"));
myMap.put("key3", new MyObject("value3"));
myMap.put("key4", null); //Added to reproduce the problem
System.out.println("Map contents: " + myMap); // Debug print
try {
for (MyObject obj : myMap.values()) {
// NullPointerException happens on the next line SOMETIMES!
System.out.println(obj.getValue());
}
} catch (NullPointerException e) {
System.err.println("Caught NullPointerException: " + e.getMessage());
e.printStackTrace(); // Print the full stack trace
}
}
}
class MyObject {
private String value;
public MyObject(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
< /code>
Тогда это то, что я получаю в качестве вывода: < /p>
Map contents: {key1=MyObject@..., key2=MyObject@..., key3=MyObject@..., key4=null}
Caught NullPointerException: null
java.lang.NullPointerException
at HashMapProblem.main(HashMapProblem.java:19)
... (rest of the stack trace)
< /code>
Я полностью озадачен. Карта явно имеет значения, но я все еще получаю NullPointerException
Подробнее здесь: https://stackoverflow.com/questions/794 ... initely-pr