Друзья, вопрос : что происходит в строке
HashMap<String, String> map = new HashMap<String, String>(null); ??
Мы создаем мапу и пытаемся в него null занести в качестве ключа? По этой причине исключение возникает?
Вот этот null в скобках непонятен
Алексей
16 уровень
В чем причина исключения?
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
6 февраля 2020, 21:35
https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
Посмотри раздел Constructor Detail
0
ГоффMaster
6 февраля 2020, 21:36
Конструкторы подразумевают определённый тип данных, возможных в скобках. null явно в их число не входит )
0
ГоффMaster
6 февраля 2020, 21:42
А, вот ещё к твоему вопросу: This implementation provides all of the optional map operations, and permits null values and the null key
0
Алексей Software Developer в АО СибКом
7 февраля 2020, 22:21
Благодарю
0
Алексей Software Developer в АО СибКом
7 февраля 2020, 22:23
то есть выходит ,что дело именно в параметрах конструктора, да?
0
ГоффMaster
7 февраля 2020, 23:28
Да. Там четыре конструктора с разными параметрами. У одного - два параметра, у ещё одного - параметров нет. Два вызываются с одним параметром:
public HashMap(int initialCapacity)
public HashMap(Map<? extends K,? extends V> m)
null не может интерпретироваться как примитивный тип, как int. Поэтому вызывается конструктор, где параметром Map. И в описании прямо сказано, что если передаётся null, то выбрасывается исключение.
Throws:
NullPointerException - if the specified map is null
+1
Алексей Software Developer в АО СибКом
10 февраля 2020, 18:03
Исчерпывающе, благодарю))
0