如何实例化DefaultHashMap类

时间:2013-05-09 03:12:53

标签: java hashmap

我正在尝试访问DefaultHashMap类,但在main方法中遇到错误。谁能告诉我这是什么问题?

import java.util.Random;
import java.util.*;


public class PythonToJava {


    public static void main(String[] args) {


        Random rm = new Random();

        int i = rm.nextInt(1000);

        HashMap<Integer,Integer> stats = new HashMap<Integer,Integer>();

        DefaultHashMap<K,V> default = new DefaultHashMap<K,V>();

        System.out.println("Random Number Generated is: " + i);

                for (int j = 0; j<i; j++){

                    int value = rm.nextInt(500);

                    System.out.println("The value of VALUE is " + value);


                }


    }

}

class DefaultHashMap<K,V> extends HashMap<K,V> {
      protected V defaultValue;
      public DefaultHashMap(V defaultValue) {
        this.defaultValue = defaultValue;
      }
      @Override
      public V get(Object k) {
        V v = super.get(k);
        return ((v == null) && !this.containsKey(k)) ? this.defaultValue : v;
      }
    }

请帮我纠正我在代码中遇到的错误:

DefaultHashMap<K,V> default = new DefaultHashMap<K,V>();

2 个答案:

答案 0 :(得分:2)

KV是类型参数,在这里,您需要使用具体类型来替换它们,与使用HashMap时相同。

答案 1 :(得分:-1)

K,V必须是对象 您不能使用变量默认值。它是一个java保留字。

您应该阅读有关java泛型的内容 http://docs.oracle.com/javase/tutorial/java/generics/why.html