【发布时间】:2021-07-31 19:52:30
【问题描述】:
我有更多带有一些值的枚举,我想问你有什么方法可以缓存枚举值:
例如:
public enum Animal {
Dog, Cat, Cow;
static Animal[] values;
static EnumSet<Animal> cachedAnimalsEnumSet;
static List<Animal> cachedAnimalsList;
static {
values = values();
cachedAnimalsEnumSet = EnumSet.allOf(Animal.class);
cachedAnimalsList = Arrays.asList(Animal.values());
}
}
最好的方法是: 值,cachedAnimalsEnumSet 还是 cachedAnimalsList ?
【问题讨论】:
-
这取决于你想做什么,但
cachedAnimalsEnumSet可能是最好的解决方案。 -
或者以上都不是。使用
Animal.values()有什么问题?当然,这取决于您需要它来做什么。例如。如果您确实需要Set或List,并且您经常需要它,那么是的,也许创建一个全局可重用的是好的。只有您可以判断您的场景是否需要它。
标签: java caching enums enumset