簡體   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