Справочная информация: HashMap
позволяет null
клавиш ( Javadoc ).HashTable
нет, но он также (вероятно) медленнее в использовании, потому что он синхронизирован с потоками.Поэтому я бы посоветовал вам принять во внимание возможность использования в коде ключей null
, либо не помещайте их в карты, которые вы передадите в print
, либо измените print
для их обработки.
Вы можете сделать это с помощью этого кода:
private void test() {
Map<String, String> m = new HashMap<>();
m.put(null, "Anything");
print(m);
}
если вы можете запустить отладчик, будет ясно, какой вызов дает NPE, если нет, иногда полезно разбить выражение следующим образом
private void print(Map<String, String> map) {
Enumeration<String> keys = Collections.enumeration(map.keySet());
while (keys.hasMoreElements()) {
String nextElement = keys.nextElement();
boolean contains = nextElement.contains("Test");
System.out.println(contains);
}
}
тогда вы увидите, по какой строке вызывается исключение.