如何使用新的Java 14开关表达式将开关大小写声明为默认值?
我只想:
enum States {
PLAY, STOP
}
...
States state = ...
switch (state) {
case PLAY -> { run(); }
case STOP, default -> { stop(); }
}
这并不能编译。它使用Java17 Preview-Features,进行编译,但这不是解决方案吗?!我真的想避免使用未完成的特性。
它应该等效于旧风格的开关语句:
switch (state) {
case PLAY: run(); break;
case STOP: // <-- No extra "break;". Intentional fall-through!
default: stop(); break;
}
对于普通Java 14 (或者17)来说,这是可能的吗?
发布于 2022-03-29 07:44:42
不要认为这是可能的。另一种选择是在这两种情况下只包括stop():
switch (state) {
case PLAY -> run();
case STOP -> stop();
default -> stop();
}
https://stackoverflow.com/questions/71664687
复制