【发布时间】:2021-04-18 03:12:07
【问题描述】:
return degrees % 90 != 0? Optional.empty() : Optional.of( switch( degrees ) {
case 0 -> NORTH;
case 90 -> EAST;
case 180 -> SOUTH;
case 270 -> WEST;
//default -> null; is there something I can put here to make empty Optional?
} );
Above 返回一个 Optional 包含基本方向的枚举。该代码之前已确保这些是degrees 仅有的 4 个可能值。但 IntelliJ IDEA 不允许这样做,抱怨 switch 没有处理所有可能的值。
我已经搜索了 @SuppressWarnings 注释来允许这样做;我找到的最接近的是SwitchStatementWithoutDefaultBranch,但它没有帮助。
似乎应该有一个注释可以允许这样做。
我知道可以重写代码来解决这个问题,但是为什么不能处理呢?
【问题讨论】:
-
去掉三元只用
Optional.ofNullable? -
把
case 270改成default? -
太棒了!谢谢你。 (我正在将您的解决方案添加到我即将写的答案中。)但是,我仍然认为应该有一个 @SuppressWarnings 注释来允许这样做。
标签: java intellij-idea switch-statement optional