【发布时间】:2015-12-23 10:51:17
【问题描述】:
在我正在进行的项目中,我发现了一个奇怪的代码:
public enum Service {
...
private static final Service[] values = values();
public static Service[] getValues() {return values;}
}
你知道为什么实现者添加了他的自定义方法而不是到处使用 values() 方法吗?我知道,values() 方法是在编译时生成的,它有什么影响吗?
【问题讨论】:
-
他写的JavaBeans太多了?已经是半夜了,他应该早点回家吧?他认为
values()很慢,想将结果存储在变量中以“提高性能”? -
有太多可能的答案,从企业愚蠢的政策到硬习惯甚至更糟。我们怎么知道?
-
如果您希望使用这些值,可能某些框架会要求这样做,例如 UI 框架?
-
我同意 Krzysztof Cichocki 的观点。框架需要 getXxx 方法是通用的:)
-
并不奇怪:它对子类很有用:见我的回答。