类型HashMap不接受参数

时间:2015-11-11 09:54:18

标签: java shadowing

我在java中关注HashMap this video。它有below code

// Create the HashMap
HashMap<String,String> hm = new HashMap<String, String>();

// Put data
hm.put("Katie", "Android, WordPress");
hm.put("Magda", "Facebook");
hm.put("Vanessa", "Tools");
hm.put("Ania", "Java");
hm.put("Ania", "JEE");    // !! Put another data under the same key, old value is overridden

// HashMap iteration
for (String key: hm.keySet())
    System.out.println(key+":"+hm.get(key));

所以我编写了下面的代码,用它来练习HashMap(几乎相同的代码)

package hashmap;
import java.util.*;

public class HashMap {

    public static void main(String[] args) {

        HashMap<String,String> hm = new HashMap<String, String>();

        hm.put("Katie", "Android, WordPress");
        hm.put("Magda", "Facebook");
        hm.put("Vanessa", "Tools");
        hm.put("Ania", "Java");
        hm.put("Ania", "JEE");   

    }
}

但是课程没有编译给出错误&#34; 类型HashMap不接受参数 &#34;所以我搜索了got this

的答案

其中一个答案说

  

两个可能的错误:

     

您使用的是JDK 1.4

     

您导入的内容不是java.util.Map

所以我导入了java.util.Map但是netbeans给出了这个错误,并说导入没有使用。然后我java.util.*;但结果是一样的。我不知道这是我的IDE故障的新手错误。

我的jdk 1.8和Windows 8.1中的Netbeans 8.0.2

4 个答案:

答案 0 :(得分:9)

您正在为您的班级HashMap命名,这会影响java.util.HashMap。只需将其重命名为其他内容即可。

答案 1 :(得分:2)

您的public class HashMap自定义类会隐藏java.util.HashMap,并且您的自定义HashMap不是通用的,因此new HashMap<String, String>()对您的自定义类无效。

答案 2 :(得分:0)

我建议不要使用与 HashMap 相同的类名,因为它是Java中的Map Techniques的实现,并且还使用Map.entry接口作为每个循环的对象。我希望下面的代码可以帮助有新HashMap的人。

import java.util.*;
public class QueQue {
public static void main(String[] args) {
    HashMap<String, Integer> hm = new HashMap<String, Integer>();
    hm.put("Peter", 10);
    hm.put("Nancy", 8);
    hm.put("Lily", 9);

    for (Map.Entry<String, Integer> x : hm.entrySet())//entrySet()=Returns a set of all the entries in the map as Map.Entry objects.
    {
        System.out.println(" The String Value in Hashmap is " + x.getKey());
      System.out.println(" The Integer Value in Hashmap is " +x.getValue());
    }
 }
      }

答案 3 :(得分:0)

使用 existingJavaType,对于那些想要使用 Map 属性的人

{
    "existingJavaType": "java.util.Map<String, String>",
    "additionalProperties": {
        "type" : "string"
    }
}