我最近遇到了以下示例:
CommandKey key = command.getKey();
switch(key.ordinal()) {
case 1:
return IncidentType.StatusChange;
case 2:
return IncidentType.Notification;
...
键是一个枚举。
写这本书的人有没有理由这样做,因为这似乎使代码变得不必要地脆弱;更改枚举列表的值可能会破坏映射逻辑并导致错误的返回类型。
我能看到的唯一可能的好处是轻微的性能提升,在具有高吞吐量的服务器的上下文中可以证明采用的方法是合理的。
任何可能的性能提升是否值得,还有我不知道的任何其他好处吗?
最佳答案
有充分的理由反对它。序号可以随时更改,甚至不会破坏二进制兼容性。名字根本不能这么改。
更好的解决方案是将返回值构建到 Enum
本身。
关于java - 在 switch case 中使用枚举的序号而不是使用枚举有什么重要的理由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49026595/