Jun*_*ail 1 java switch-statement
package com.learningjava.conditionals;
public class SwitchExcercises {
public static boolean isWeekDay(int dayNumber) {
switch (dayNumber) {
case 0:
case 1:
case 2:
case 3:
case 4:
return true;
case 5:
case 6:
return false;
case default:
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Eclipse 作为我的 ide。说,在默认情况下显示错误
The preview feature Pattern Matching in Switch is only available with source level 20 and above.
Run Code Online (Sandbox Code Playgroud)
使用 java-se 17。感谢您的帮助。
小智 6
这是一个语法错误,您打算编写的代码实际上试图执行与您预期完全不同的操作。您的语法错误意外地与名为Switch Expressions and statements 的 Pattern Matching 的全新 Java 功能重叠。
要修复该错误,只需切换到case defaultjust default。
case default:
return false;
Run Code Online (Sandbox Code Playgroud)
到
default:
return false;
Run Code Online (Sandbox Code Playgroud)
为了更好地解释错误消息,Eclipse IDE 知道新的 Java 功能,因此试图让您知道您正在做的事情看起来像新功能,并且如果您正在尝试执行新功能,您应该将代码级别升级到21级或以上。
但当然,Eclipse 弄错了——您只需要一个默认子句。所以像我上面展示的那样写,错误就会消失。
另外,请注意,您所做的事情在道德上是一种表达,您可以这样表达:
return switch (dayNumber) {
case 0, 1, 2, 3, 4 -> true;
case 5, 6 -> false;
default -> false;
}
Run Code Online (Sandbox Code Playgroud)
甚至
return switch (dayNumber) {
case 0, 1, 2, 3, 4 -> true;
default -> false;
}
Run Code Online (Sandbox Code Playgroud)
因为这里的意图是“如果在 0..4 中则为 true,否则为 false”。
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |