まず、次のクラスがあります。
public class Pair <K, V> {
public K key;
public V value;
public Pair (K key, V value){
this.key = key; this.value = value;
}}
およびインターフェース:
public interface Generator <T> {
public T next ();}
クラス MapData には 2 つのパラメーターがあり、LinkedHashMap を拡張します。
public class MapData <K, V> extends LinkedHashMap <K, V>
クラスには 1 つのコンストラクターがあります。
public MapData (Generator <Pair<K, V>> gen, int size){
for (int i=0; i!=size; i++){
Pair <K, V> p = gen.next();
put (p.key, p.value);
}}
および1つの方法(この方法がアダプターのように機能することを理解する方法):
public static <K, V> MapData <K, V> map (Generator <Pair<K, V>> gen, int size){
return new MapData (gen, size);
}
だから... この構造を正しく使用する方法を知りたいですか? 例えば:
public static void main (String [] args){
System.out.println(new Pair <String, Integer>(), 10); // Doesn't work at all...
}