我在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);
}
}
答案 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
但是,请记住,像在程序中一样命名你的课程是个坏主意。