2013-05-09 77 views
0

我試圖訪問DefaultHashMap類,但在主方法中出現錯誤。誰能告訴我有什麼問題?如何實例化類DefaultHashMap

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

http://docs.oracle.com/javase/tutorial/java/generics/types.html – 2013-05-09 03:16:21

回答

2

KV是類型參數,在這裏,你需要使用的具體類型替換它們,就像當您使用HashMap時一樣。

+0

本聲明聽起來不錯? 'DefaultHashMap defaultvalue = new DefaultHashMap ();' – Tan 2013-05-09 03:26:26

+0

參數是類型參數,所以它可能應該是而不是(如果值的類型爲int或Integer)。 – 2013-05-09 03:28:53

+0

感謝您的回覆。我更新了代碼,如下所示:class DefaultHashMap extends HashMap protected Integer defaultValue; \t public DefaultHashMap(Integer defaultValue){ \t this.defaultValue = defaultValue; \t} \t @Override \t公共整數得到(對象k){ \t整數v = super.get(K); \t return((v == null)&&!this.containsKey(k))? this.defaultValue:v; '但是仍然在第一行出現錯誤,即類DefaultHashMap extends HashMap {' – Tan 2013-05-09 03:32:43