values().length每次调用时,using
将创建该数组的新副本。有时我会创建自己的
List(或设置或映射,无论需要什么)以避免这种无意义的复制。不过,我 不会对其进行
硬编码…如果您只需要大小,则可以使用:
private static final int size = Configuration.values().length;
在末尾。到评估时,所有值都将被初始化。这避免了其他答案中引起的DRY和不一致问题。
当然,这本身就是微优化的一部分……但是最终以 更简单的
代码IMO结束了。
values().length从其他地方进行调用并不能表示您感兴趣的内容,而 只是 表示枚举的大小-
IMO通过一系列值来获得它的事实是偶然的并且会分散您的注意力。
使用的一种替代方法
values()是将
EnumSet.allOf().size()其用于小枚举将非常便宜-
但同样,它不像具有
size字段那样可读。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)