java - 我是否需要担心使用 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");
}
}
解决方案
这取决于你认为什么是好的
如果您认为代码现在可以按预期工作,并且 Enum 永远不会改变,那么是的,可以说是可以的
可能情况并非如此,因此以灵活性和需求变化为目标:
- 添加新颜色时会发生什么?你真的想说是
BLUE
吗? - 当颜色是什么时
null
,那可能代表unkown
什么?
对于第一个问题,您可以通过单元测试来介绍该方法。
对于第二个问题,我至少会为颜色添加一个UNKOWN
和/或NO_COLOR
值,并相应地将它们用于else
分支。
推荐阅读
- python - 将原始文件名设置为 Django 模型中的默认标题字段
- kubernetes - 在 Kubernetes swarm 中运行 Elixir 程序
- java - 视频播放完毕后播放视频并退出应用程序的活动
- java - Mockito Spring Camel @Autowire 失败
- aws-step-functions - Step Functions:如何处理来自活动工作者的自定义错误?
- firebase - Firebase Cloud Messaging for web:如何发送到多个令牌?
- codenameone - 如何在我的特定用例中使用“Codename One New-Java-Javascript-Interop-API”进行双向通信?
- loopbackjs - 我认为持久化的模型文档已经消失了
- javascript - 为什么在 React 构造函数中需要 bind(this)?
- c - 在 void 函数中通过引用而不是值传递结构