SuppressWarnings (непроверенный) работает спорадически в Intellij - PullRequest
0 голосов
/ 26 октября 2018

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

К сожалению, по некоторым причинам не все аннотации SuppressWarnings («непроверенные») работают, и когда я запускаю сборку, некоторые методы выдают жалобу, которая должна быть подавлена.

Например,

public class Foo extends Bar {

public Foo () {
    // Some code
}

@Override
@SuppressWarnings("unchecked")
public Object visit(Visitor v) { 
    v.accept(this);
}
//Other code omitted. 
}

Выдает предупреждение, когда дело доходит до компиляции

Warning:(18, 19) java: visit(...Visitor) in ...Foo overrides <R>visit(...Visitor<R>) in ...Bar
  return type requires unchecked conversion from java.lang.Object to R

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

Кто-нибудь может объяснить, что происходит, и как лучше всего это решить?

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