【发布时间】:2017-06-24 17:26:07
【问题描述】:
我有一个复杂的验证系统,简化后如下所示:
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";
}
}
但是,当我在 switch 语句中同时调用 finalMethod() 和 nextMethod() 时收到关于“参数 x 可能为空”的警告,即使之后的 methodSelect() 和 switch 语句确保这些参数不会为空。 如何正确消除这些警告,希望在这些方法中或之前无需再次检查 null? 谢谢!
我正在使用 IntelliJ IDEA 2016.3.4、Java 8 和注释:
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
【问题讨论】:
标签: java intellij-idea annotations nullable notnull