2010-01-23 4 views
0

값을 가리키는 두 개의 키로 Java의 멀티 키맵에 대한 put 및 get-methods를 구현하려고합니다. 나는이 같은 풋 방법을 작성했습니다 :이 방법을 테스트 할 때Java multikeymap put-method

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.put("xxxxx", 13, "xxxxx"); 

로 (나는 내 ​​자신의 multikeymap 형의 인스턴스로 mappi 제대로 초기화 한) 내가 얻을 NullPointerException 발생시

if (mappi.containsKey(key2)) { 

예외가 발생할 수있는 것은 무엇입니까? 내 클래스의 MultiKeyMap에서 생성자의 multikeymap 객체를 초기화 했으므로 괜찮습니다.

답변

1

숙제가 아닌 경우 처음부터 다시 실행하는 대신 Apache Commons Collections에서 MultiKeyMap을 사용할 수 있습니다.

질문에 대답하기 위해 오류가 HashMap<KeyTypeB, ValueType> mappi = outerMap.get(key1);에있는 것으로 생각됩니다. 에 key1 값이없는 경우 mappi은 null이되어 NullPointerException

+0

네, 맞습니다. 감사합니다! – rize

관련 문제