J'ai un peu d'un système de validation complexe, que simplifié ressemble à quelque chose comme ce qui suit:Comment éviter l'avertissement null en utilisant @NotNull et en vérifiant null dans une autre méthode avant l'appel de méthode?
private static void mainMethod(@Nullable String startParam, @Nullable String nextParam) {
String nextStep = methodSelect(startParam, nextParam);
switch (nextStep) {
case "none":
break;
case "goFinal":
finalMethod(startParam);
break;
case "goNext":
nextMethod(nextParam);
break;
}
}
private static void nextMethod(@NotNull String nextParam) {
System.out.println(nextParam);
}
private static void finalMethod(@NotNull String startParam) {
System.out.println(startParam);
}
@NotNull
private static String methodSelect(@Nullable String startParam,@Nullable String nextParam) {
if (startParam == null && nextParam == null) {
return "none";
} if (startParam == null) {
return "goNext";
} else {
return "goFinal";
}
}
Mais je reçois des avertissements lorsque dans l'instruction switch appelant les deux finalMethod() et nextMethod() sur « Argument x pourrait be null ", même si methodSelect() et l'instruction switch vérifient ensuite que ces arguments ne seront pas NULL. Comment est-ce que je peux me débarrasser correctement de ces avertissements, heureusement sans avoir une autre vérification de null dans ou avant ces méthodes? Merci!
J'utilise IntelliJ IDEA 04/03/2016, Java 8 et annotations:
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Merci pour la bonne réponse! –