[英]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.