Как уже говорили другие, предупреждений нельзя избежать, кроме как путем их подавления. ИМХО проблема в том, что либо вы должны засорять свой код аннотациями, которые применяются к небольшому объему, либо игнорировать их глобально и создавать ошибки.
IIRC есть предложение генерировать предупреждения, когда необработанные типы возвращаются вместо вызова.
Между тем, я думаю, что лучший подход - использовать метод-обертку, чтобы предупреждения были ограничены одним местом, где их можно игнорировать:
class NoWarn {
public static Map<String, String[]> getParameterMap(ServletRequest r)
{
@SuppressWarnings("unchecked")
Map<String, String[]> result = r.getParameterMap();
return result;
}
}
Примечание
Этот ответ был отредактирован с комментарием о том, что аннотации не могут быть внутри тела метода. Это неверно, вышеизложенное является синтаксически правильным. Я отменил изменения.