Java HashMap中不是通用错误

时间:2017-12-05 21:30:38

标签: java hashmap

我在Java代码中收到HashMap的以下错误。

错误 - “ HashMap类型不是通用的;不能使用参数<>

参数化
package com.example.map;

import java.util.Map;
import java.util.HashMap;

public class HashMap {

    public static void main(String[] args) {
        // compilation error here                vvvvvvv
        Map<Integer, String> mapHttpErrors = new HashMap<>();

        mapHttpErrors.put(200, "OK");
        mapHttpErrors.put(303, "See Other");
        mapHttpErrors.put(404, "Not Found");
        mapHttpErrors.put(500, "Internal Server Error");

        System.out.println(mapHttpErrors);      

    }

}

3 个答案:

答案 0 :(得分:2)

您也已为自己的班级HashMap命名。

当您编写new HashMap时,编译器认为您指的是您自己的类,它确实没有指定任何通用参数。

您可以(事实上:应该)将您的班级名称更改为其他内容,或者在代码中明确引用java.util.HashMap

Map<Integer, String> mapHttpErrors = new java.util.HashMap<>();

答案 1 :(得分:0)

正如错误告诉你的那样,你的HashMap类不是通用的,所以你的代码毫无意义。

您不应该使用与内置类相同的名称创建类。

答案 2 :(得分:0)

在以下行中,HashMap指的是您创建的公共类:

Map<Integer, String> mapHttpErrors = new **HashMap**<>();

使用与官方Java API中的类完全相同的名称来命名您的类通常是一个非常糟糕的主意。但是,如果您确定不是这样,那么您仍然希望保留旧名称,以下是使用HashMap java.util包中的Map<Integer, String> mapHttpErrors = new java.util.HashMap<>(); 的方式:

echo

但是,请记住,像在程序中一样命名你的课程是个坏主意。