Java-метод многопользовательской карты - PullRequest
0 голосов
/ 23 января 2010

Я хочу реализовать методы put и get для multikeymap в Java с двумя ключами, указывающими на значение. Я написал пут-метод так:

public ValueType put(KeyTypeA key1, KeyTypeB key2, ValueType value) {

 HashMap<KeyTypeB, ValueType> mappi = outerMap.get(key1);
 ValueType oldvalue;
 if (mappi.containsKey(key2)) {
  oldvalue = mappi.get(key2);
 } else {
  oldvalue = null;
 }

Однако, когда я тестирую этот метод (я правильно инициализировал mappi как экземпляр моего собственного типа multikeymap) с

mappi.put("xxxxx", 13, "xxxxx");

Я получаю исключение NullPointerException на

if (mappi.containsKey(key2)) {

Что может вызвать исключение? В моем классе MultiKeyMap я инициализирую объект multikeymap в конструкторе, так что все должно быть в порядке.

1 Ответ

1 голос
/ 23 января 2010

Если это не домашнее задание, вы можете использовать MultiKeyMap из Apache Commons Collections вместо того, чтобы повторять его с нуля.

Чтобы ответить на ваш вопрос, я подозреваю, что ошибка лежит в HashMap<KeyTypeB, ValueType> mappi = outerMap.get(key1);. Если key1 не имеет значения в outerMap, то mappi будет нулевым, в результате чего NullPointerException

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