Pourquoi est-ce que j'obtiens un avertissement de l'inspection "NullableProblems" dans IntelliJ à ce sujet:
public class Test implements Comparable<Test> {
@Override
public int compareTo(Test o) {
return 0;
}
}
J'utilise IntelliJ 14.1.4 et je compile avec Java 1.7
Capture d'écran:
Ajouter @NotNull
avant l'argument n'aide pas:
De Comparable.compareTo
:
@throws NullPointerException if the specified object is null
IntelliJ sait donc que l'objet ne doit pas être null
et ajoute un @NotNull
annotation automatiquement :
IntelliJ IDEA examinera attentivement le SDK et le bytecode des bibliothèques et déduira automatiquement ces annotations afin qu'elles puissent plus tard être utilisées pour analyser le code source pour repérer les endroits où vous avez ignoré null.
Votre méthode surchargée n'inclut pas cette annotation, donc elle remplace ce comportement rendant le paramètre nullable - par rapport au contrat de l'interface Comparable
.
Vous pouvez résoudre ce problème en ajoutant @NotNull
avant le paramètre.
Vous pouvez également désactiver cette inspection en appuyant sur Alt + Enter, en sélectionnant l'avertissement dans le menu contextuel et en sélectionnant Disable inspection
dans le sous-menu.
Consultez Aide Web et ce fil pour plus d'informations sur @NotNull
/@NonNull
annotations.
Cela peut être configuré globalement dans IntelliJ IDEA facilement et pour moi personnellement est la façon recommandée. Si vous le souhaitez, vous pouvez ajouter vos propres annotations.
c'est à dire. javax.validation.constraints.NotNull
Chemin d'accès au paramètre:Settings > Editor > Inspections > @NotNull/@Nullable problems > Configure annotations