Как избежать предупреждения преобразования непроверенного в Java, если Вы пользуетесь библиотеками прежней версии?

Я использую Платформу Spring для управления моими одиночными элементами. Это не осуществляет "одноэлементный мыс" класса (который Вы не можете действительно сделать так или иначе, если существует несколько включенных загрузчиков класса), но обеспечивает действительно простой способ создать и настроить различные фабрики для создания различных типов объектов.

26
задан Andreas Fester 4 August 2016 в 08:20
поделиться

5 ответов

Как уже говорили другие, предупреждений нельзя избежать, кроме как подавив их. Проблема, IMHO, заключается в том, что либо вы должны засорять свой код аннотациями, которые относятся к небольшой области видимости, либо игнорировать их глобально и рисковать ошибками.

IIRC есть предложение генерировать предупреждения, в которых необработанные типы возвращаются вместо вызова .

Между тем, я думаю, что лучший подход - использовать метод оболочки, чтобы предупреждения ограничивались одним местом, где их можно безопасно игнорировать:

class NoWarn {
  public static Map<String, String[]> getParameterMap(ServletRequest r) 
  {
    @SuppressWarnings("unchecked")
    Map<String, String[]> result = r.getParameterMap();
    return result;
  }
}

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

41
ответ дан 28 November 2019 в 06:58
поделиться

Самое чистое, что вы можете сделать, - это инкапсулировать преобразование из устаревшего в общий код и подавить предупреждение только там.

Например, вы можете поместить общий фасад в свою устаревшую библиотеку, хотя это не всегда может иметь смысл.

8
ответ дан 28 November 2019 в 06:58
поделиться

Как избежать этого предупреждения с помощью язык, а не просто подавление предупреждение с SuppressWarnings-annotation.

Аннотация - это способ избежать предупреждения с помощью языка. Другого пути нет.

2
ответ дан 28 November 2019 в 06:58
поделиться

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

1
ответ дан 28 November 2019 в 06:58
поделиться

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.

1
ответ дан 28 November 2019 в 06:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: