Я использую Платформу Spring для управления моими одиночными элементами. Это не осуществляет "одноэлементный мыс" класса (который Вы не можете действительно сделать так или иначе, если существует несколько включенных загрузчиков класса), но обеспечивает действительно простой способ создать и настроить различные фабрики для создания различных типов объектов.
Как уже говорили другие, предупреждений нельзя избежать, кроме как подавив их. Проблема, IMHO, заключается в том, что либо вы должны засорять свой код аннотациями, которые относятся к небольшой области видимости, либо игнорировать их глобально и рисковать ошибками.
IIRC есть предложение генерировать предупреждения, в которых необработанные типы возвращаются вместо вызова .
Между тем, я думаю, что лучший подход - использовать метод оболочки, чтобы предупреждения ограничивались одним местом, где их можно безопасно игнорировать:
class NoWarn {
public static Map<String, String[]> getParameterMap(ServletRequest r)
{
@SuppressWarnings("unchecked")
Map<String, String[]> result = r.getParameterMap();
return result;
}
}
Примечание Этот ответ был отредактирован с комментарием о том, что аннотации не могут находиться внутри тел методов. Это неверно, это синтаксически правильно. Я отменил изменение.
Самое чистое, что вы можете сделать, - это инкапсулировать преобразование из устаревшего в общий код и подавить предупреждение только там.
Например, вы можете поместить общий фасад в свою устаревшую библиотеку, хотя это не всегда может иметь смысл.
Как избежать этого предупреждения с помощью язык, а не просто подавление предупреждение с SuppressWarnings-annotation.
Аннотация - это способ избежать предупреждения с помощью языка. Другого пути нет.
Я не думаю, что вы сможете. Предупреждение будет отображаться, если вы его не подавите или не отфильтруете из списка предупреждений в среде IDE.
I had the same problem, i just turned off all generic warnings and im happy :) You could also turn off serialVersionUID warning since many people dont use serialVersionUID.
in Eclipse - Window/Perferences/Java/Compiler/Errors/Warnings and turn off all Generic types.
P.S. Many bad warnings make you ignore all the warnings and some might be usefull.