繁体   English   中英

Java HashMap中不是通用错误

[英]not generic Error in 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);      

    }

}

您也已经命名了自己的类HashMap

当您编写new HashMap ,编译器会认为您是在引用您自己的类,而该类实际上并未指定任何通用参数。

您可以(实际上:应该)将类的名称更改为其他名称,或者在代码中显式引用java.util.HashMap

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

错误告诉您,您的HashMap类不是通用的,因此您的代码没有意义。

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

在以下行中, HashMap引用您创建的公共类:

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

用与官方Java API中的类完全相同的名称来命名类通常是一个非常糟糕的主意。 但是,如果您确定要替代旧名称,那么仍然可以保留旧名称,这是从java.util包使用HashMap的方法:

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

但是再一次,请记住,像在程序中一样命名类是一个坏主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM