2013-05-09 2 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 –

답변

2

KV 여기 유형 매개 변수이며,을, 당신은에 대한 구체적인 유형을 사용해야합니다 그들을 HashMap을 사용할 때와 동일하게 대체하십시오.

+0

이 문은 좋은 소리 않습니다 자바 제네릭에 대해 읽어해야합니까? DefaultHashMap defaultvalue = new DefaultHashMap (); – Tan

+0

매개 변수는 유형 매개 변수이므로 (값이 int 또는 Integer 유형 인 경우) 대신 여야합니다. –

+0

답장을 보내 주셔서 감사합니다. 다음과 같이 코드를 업데이트했습니다. class DefaultHashMap 는 HashMap을 확장합니다. { \t protected Integer defaultValue; \t public DefaultHashMap (정수 defaultValue) { \t this.defaultValue = defaultValue; \t} \t @Override \t 공개 얻을 정수 (객체 K) { \t 정수 super.get V = (K); \t return ((v == null) &&! this.containsKey (k))? this.defaultValue : v; \t} \t}'class DefaultHashMap 는 HashMap을 확장합니다. {' – Tan

관련 문제