Hashmap не возвращает значение, как ожидалось, при получении с использованием ключа - PullRequest
0 голосов
/ 29 июня 2018

Должно быть достаточно просто, но это сводит меня с ума!

Иметь HashMap с парой ключ: значение как Long: Dto соответственно.

Когда я отлаживаю, я вижу одну запись в Hashmap со значением Long в качестве ключа - но когда я пытаюсь получить get (), используя Key, я получаю ноль обратно.

Для следующего:

Map<Long, Dto> response = getMap();

System.out.println("Contents of HashMap: " + response);
System.out.println("Size of HashMap: " + response.size());
System.out.println("HashMap Keyset: " + response.keySet());
System.out.println("HashMap Contains: " + response.containsKey(19999984L));
System.out.println("HashMap Object: " + response.get(19999984L));

Я получаю следующий вывод:

Contents of HashMap: {19999984={productOptionId=19999984, amount={amount=20.99, currency=EUR}, pricingType=MSRP}}
Size of HashMap: 1
HashMap Keyset: [19999984]
HashMap Contains: false
HashMap Object: null

Любые предложения будут оценены здесь ... это должно работать наверняка!

Может быть, я упускаю что-то очевидное.

Ответ: Похоже, что мое значение ключа имеет строковый тип - как показано ниже:

System.out.println("Contents of HashMap: " + response);
System.out.println("Size of HashMap: " + response.size());
System.out.println("HashMap Keyset: " + response.keySet());
System.out.println("HashMap Contains: " + response.containsKey("19999984"));
System.out.println("HashMap Object: " + response.get("19999984"));
System.out.println("HashMap Class: " + response.getClass());

1 Ответ

0 голосов
/ 29 июня 2018

Ваш ключ в hashmap имеет тип int, а ваш метод содержит 19999984L, который является длинным типом.

Contents of HashMap: {19999984={productOptionId=19999984, amount={amount=20.99, currency=EUR}, pricingType=MSRP}}
Size of HashMap: 1
System.out.println("HashMap Contains: " + response.containsKey(19999984L));

Вот причина ложного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...