H
hiwa
If you are a Java Generics guru, would you please help.
Below is an implementation of a multi-value Map that use
ArrayList as its value element.
What should we do in order for this to be compiled
without errors nor warnings from 1.5 compiler? If you
could attach brief explanation, we won't be happier.
------------------------------------------------------------
import java.util.*;
public class MultiValueLinkedHashMap extends LinkedHashMap{
public MultiValueLinkedHashMap(){
super();
}
public MultiValueLinkedHashMap(int initialCapacity){
super(initialCapacity);
}
public MultiValueLinkedHashMap
(int initialCapacity, float loadFactor){
super(initialCapacity, loadFactor);
}
public MultiValueLinkedHashMap
(int initialCapacity, float loadFactor, boolean accessOrder){
super(initialCapacity, loadFactor, accessOrder);
}
public MultiValueLinkedHashMap(Map m){
super(m);
}
public Object put(Object key, Object value){
ArrayList al = null;
if (containsKey(key)){ //existing key
al = (ArrayList)get(key);
al.add(value); //just add the new value
}
else{ //fresh entry
al = new ArrayList();
al.add(value);
super.put(key, al);
}
return al; //yes, returns updated value
}
}
------------------------------------------------------------
Below is an implementation of a multi-value Map that use
ArrayList as its value element.
What should we do in order for this to be compiled
without errors nor warnings from 1.5 compiler? If you
could attach brief explanation, we won't be happier.
------------------------------------------------------------
import java.util.*;
public class MultiValueLinkedHashMap extends LinkedHashMap{
public MultiValueLinkedHashMap(){
super();
}
public MultiValueLinkedHashMap(int initialCapacity){
super(initialCapacity);
}
public MultiValueLinkedHashMap
(int initialCapacity, float loadFactor){
super(initialCapacity, loadFactor);
}
public MultiValueLinkedHashMap
(int initialCapacity, float loadFactor, boolean accessOrder){
super(initialCapacity, loadFactor, accessOrder);
}
public MultiValueLinkedHashMap(Map m){
super(m);
}
public Object put(Object key, Object value){
ArrayList al = null;
if (containsKey(key)){ //existing key
al = (ArrayList)get(key);
al.add(value); //just add the new value
}
else{ //fresh entry
al = new ArrayList();
al.add(value);
super.put(key, al);
}
return al; //yes, returns updated value
}
}
------------------------------------------------------------