2015-11-06 44 views
0

我有一个HashMap,它不允许我在散列映射上使用getOrDefault方法。这里是我的代码:不能在正确的泛型类型中使用正确的值

public static HashMap<String, Integer> getInputWords(String location) { 
    HashMap<String, Integer> wordCount = new HashMap<String, Integer>(); 
    try { 
     FileReader fReader = new FileReader(location); 
     BufferedReader bFReader = new BufferedReader(fReader); 
     String line = bFReader.readLine(); 
     while(line != null) { 
      String[] strs = line.split(" "); 
      for(String tmp : strs) { 
       wordCount.put(tmp.toLowerCase(), getOrDefault(tmp.toLowerCase(), Integer.valueOf(0)) + 1); //error on getOrDefault method. 
      } 
      line = bFReader.readLine(); 
     } 
     bFReader.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return null; 
    } 
    return wordCount; 
} 

的方法是给我的一个错误:

的方法getOrDefault(字符串,整数)是未定义的类型Main07

(Main07是我的课)。

+2

我们需要查看您的getOrDefault方法才能回答您的问题。 –

+0

你的getOrDefault方法在哪里?如果此方法不存在,那么肯定会出现错误消息。 – Porcelain

+0

这是该方法,它是HashMap类的一部分.V getOrDefault(Object key,V defaultValue) 返回指定键映射到的值,如果此映射不包含键映射,则返回defaultValue。 – apalapa

回答

1

getOrDefault()是一个HashMap方法,所以请拨打您的HashMap

wordCount.getOrDefault(tmp.toLowerCase(), Integer.valueOf(0)) 
+0

我不敢相信我没有看到,谢谢你指出来......我花了好半个小时,问了一个朋友关于它的消息......过了很长的一天大声笑 – apalapa