我是否需要担心使用ENUM的默认操作?

时间:2019-01-05 23:02:44

标签: java enums

我想问你在使用ENUM时是否必须在开关中填写“默认”并在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");
    }
}

1 个答案:

答案 0 :(得分:1)

这取决于您认为不错

如果您认为确定代码现在可以按预期运行,并且枚举永远不会更改,那么可以,可以说这是确定的

可能不是这种情况,因此请寻求灵活性和需求变更:

  • 添加新颜色会怎样?您真的要说是BLUE吗?
  • 当颜色为null(可能代表unkown)时会发生什么?

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

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