我正在尝试访问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>();
答案 0 :(得分:2)
K
和V
是类型参数,在这里,您需要使用具体类型来替换它们,与使用HashMap
时相同。
答案 1 :(得分:-1)
K,V必须是对象 您不能使用变量默认值。它是一个java保留字。
您应该阅读有关java泛型的内容 http://docs.oracle.com/javase/tutorial/java/generics/why.html