我必须使用开关来获取枚举的值.枚举就是这个:
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