首页 > 解决方案 > 我是否需要担心使用 ENUM 的默认操作?

问题描述

我想问一下我在使用ENUM时是否必须在switch中填写'default'并在if语句中填写'else'?

换句话说,这样写一部分代码可以吗:

enum Color {
    RED, BLUE   
}

void whatColor(Color c) {
    if(c == Color.RED) { 
        System.out.println("It's red");
    } else {
        System.out.println("It's blue");
    }
}

标签: javaenums

解决方案


这取决于你认为什么是好的

如果您认为代码现在可以按预期工作,并且 Enum 永远不会改变,那么是的,可以说是可以的

可能情况并非如此,因此以灵活性和需求变化为目标:

  • 添加新颜色时会发生什么?你真的想说是BLUE吗?
  • 当颜色是什么时null,那可能代表unkown什么?

对于第一个问题,您可以通过单元测试来介绍该方法。

对于第二个问题,我至少会为颜色添加一个UNKOWN和/或NO_COLOR值,并相应地将它们用于else分支。


推荐阅读