У меня есть немного сложной системы проверки, что упрощенным выглядит примерно следующим образом:Как избежать нулевого предупреждения при использовании @NotNull и проверять значение null в другом методе перед вызовом метода?
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";
}
}
Но я получаю предупреждения, когда в операторе переключателя вызывающему как finalMethod() и nextMethod() о «Аргумент х могуществе be null ", хотя methodSelect() и оператор switch впоследствии удостоверяются, что эти аргументы не будут равны нулю. Как я могу избавиться от этих предупреждений, надеюсь, без дополнительной проверки на нуль или до этих методов? Спасибо!
Я использую IntelliJ IDEA 2016.3.4, Java 8, и аннотации:
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Спасибо за отличный ответ! –