2017-12-05 7 views
0

JavaコードでHashMapの以下のエラーが表示されます。Javaハッシュマップのエラー

エラーは - 「型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);  

    } 

} 
+1

は同じ理由のように見える[使用しているとき、この人が失敗しました ' ArrayList'](https://stackoverflow.com/questions/16491870/arraylist-methods-are-not-working) - クラスの名前に、使用しようとしているタイプと同じ名前を付けました。 – rgettman

+0

あなたのクラスの名前を変更してください – isaace

答えて

0

、あなたのHashMapクラスはそうではなく、汎用的ですあなたのコードは意味をなさない。

組み込みクラスと同じ名前のクラスは作成しないでください。次の行HashMap

+0

ありがとうございます。クラス名を変更しようとしましたが、このエラーを取り除きました。 – Megu

0

は、あなたが作成したパブリッククラスを参照:

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

は公式のJava APIからクラスとまったく同じ名前を使用して、クラスの命名しばしば非常に悪い考えです。しかし、あなたはその代わりに、あなたはまだ古い名前を維持したい、ここにあなたがjava.utilパッケージからHashMapを使用することができる方法であると確信している場合:あなたとあなたのクラスに名前を付けることを覚えて、

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

しかし、再びが、あなたのプログラムではやや悪い考えです。

+0

「Sorry this is comment」と入力するのではなく、回答を削除してコメントとして書き込んでください。 – csmckelvey

+0

モバイルアプリでこのオプションが見つかりませんでした。 downbotesの...ええ、彼らは実際に始めた... –

+1

心配しないで、誰かがあなたに同情投票します。 – csmckelvey

2

あなた自身のクラスにはHashMapという名前を付けました。

new HashMapと書くと、コンパイラはあなたが実際にジェネリックパラメータを指定していない独自のクラスを参照していると思っています。

することができます(実際には:必要があります)何か他のものにあなたのクラスの名前を変更するのいずれかまたは明示的にコード内java.util.HashMapを参照してください。

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

ありがとうございます!私はそれを修正し、それは働いた。 – Megu

+0

明白なことを述べるために、よく使われるjava.utilクラスと同じ名前のクラスを作成することは非常に混乱します。あなたのクラスの名前を 'HashMapTest'または' LocalHashMap'または...に変更することは確かに適切でしょう。 – Gray

関連する問題