java 枚举 getvalues_java – get enum .values()[]或创建Enum数组?

我必须使用开关来获取枚举的值.枚举就是这个:

public enum Compass { NORTH, SOUTH, EAST, WEST; }

我做了这个(在枚举之外的另一个类):

Compass.values()[0].name()

但该书说,做到这一点的方法是:

Compass[] comp = { Compass.NORTH, Compass. SOUTH, Compass.EAST, Compass.WEST }

comp[0].name();

他们中的任何一个比另一个好吗?我的意思是,更稳定地创建一个Enum“对象”还是什么?

解决方法:

要直接获取其中一个枚举值的名称而不使用数组,可以执行以下操作:

Compass.NORTH.name();

Compass.values()返回的数组是枚举枚举的顺序,因此除非您不喜欢声明的顺序(并且不能更改它),否则单独创建数组没有任何好处,或者您担心某人否则会改变顺序(例如插入一个新值)并破坏你的代码.

但是,一般情况下,您希望避免重复,因为这意味着要保留两个而不是一个而且事情很容易失去同步.如果有人添加了NORTH_EAST,SOUTH_WEST等,您必须记住更新数组以满足这些值,或者发现您的代码可能在某些情况下不起作用.

标签:java,enums

来源: https://codeday.me/bug/20190530/1182353.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值