Предупреждение Eclipse с Java HashMap



java 8 generics (6)

Eclipse предоставит вам это предупреждение, если вы используете универсальную HashMap с использованием Java 5 или новее.

См. Также: Урок Generics в учебных пособиях Java Sun.

Изменить: Собственно, здесь я приведу пример:

Скажем, я хочу сопоставить чье-то имя с объектом Person :

Map<String, Person> map = new HashMap<String, Person>();
// The map.get method now returns a Person
// The map.put method now requires a String and a Person

Они проверяются во время компиляции; информация о типе теряется во время выполнения из-за того, как Java реализует Generics.

https://src-bin.com

Eclipse говорит, что «HashMap является сырым типом» Когда я использую следующий код

HashMap = new HashMap();

Любая идея, что может быть неправильным?


Answer #1

Все это действительные ответы, вы также можете использовать аннотацию @SurpressWarnings, чтобы получить тот же результат, не прибегая к фактическим дженерикам. ;)


Answer #2

Обычно это означает, что вы смешиваете общий код с не общим кодом.

Но, как ваш пример даже не скомпилирует его довольно сложно сказать ....


Answer #3

Отсутствует общий тип. Вы должны указать общую пару ключевых значений для вашей карты. Например, следующее - это объявление, которое создает экземпляр HashMap с типом типа String и Integer.

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

Answer #4

Этого не хватает, т. Если вы этого не знаете, установите компилятор eclipse в java 1.4


Answer #5

hashmap является сырым типом и, следовательно, должен быть параметризован, т. е. какие данные мы получаем через функцию haspmap, их тип должен быть объявлен для получения его функций

например

HashMap<String, Integer> map = new HashMap<String, Integer>();




hashmap