Это определенно отсутствие понимания Map.keySet
от автора кода, на который вы ссылаетесь. Как вы упомянули, в документе Java явно не указано, что метод keySet
будет возвращать null
.
В качестве примера я только что посмотрел на реализацию HashMap
метода keySet
, он определен как:
public Set<K> keySet() {
Set<K> ks = keySet;
if (ks == null) {
ks = new KeySet();
keySet = ks;
}
return ks;
}
Итак, как вы можете видеть, значение, возвращаемое методом, никогда не бывает нулевым.
Я также проверил несколько других реализаций метода keySet
, например. для TreeMap
, ConcurrentHashMap
и др., но не удалось найти ничего, что могло бы вернуть ноль.