Ссылки на универсальный тип Mapдолжен быть параметризован - PullRequest
2 голосов
/ 01 ноября 2010

В абстрактном классе есть следующее определение абстрактного метода:

public abstract Map<String, String> aMethod(aType type);

Я не могу предотвратить это предупреждение в Eclipse:

Ссылки на универсальный тип Map должны быть параметризованы

Я искал вокруг и не могу решить это. Я обнаружил, что другие испытывали ту же ошибку, но в их случаях это имело смысл. По моему я не вижу логики.

Я мог бы подавить предупреждения, но я хотел бы понять, что происходит, прежде чем применять обходной путь.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 01 ноября 2010

Ваш Map уже параметризован, поэтому предупреждение не имеет смысла. Попробуйте очистить свой проект.

2 голосов
/ 01 ноября 2010

Это предупреждение, вероятно, вызвано чем-то вроде

public Map aMethod(aType type);

Разница в этом:

public Map<String, String> aMethod(aType type);

заключается в том, что последний создает карту, в которую можно помещать только строки, ноВы можете быть уверены, что всегда получаете Strings при запросе значения.Первый дает вам возможность поместить все в него, но вы не можете быть уверены, что получите при получении значения с карты.

1 голос
/ 01 ноября 2010

Вы уверены, что ошибка актуальна для файла?

Компилируется без предупреждения:

import java.util.Map;
class aType {}

public abstract class Main {
    public abstract Map<String, String> aMethod(aType type);
}

Это, однако, приводит к ошибке, которую вы описываете:

import java.util.Map;
class aType {}

public abstract class Main {
    public abstract Map aMethod(aType type);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...