Java Enum和管理状态

时间:2013-09-06 16:14:34

标签: java spring enums

我想使用和枚举类型来表示我的应用程序中的功能标志。枚举类型具有状态和描述。我希望能够在我的代码中执行以下操作;

FeatureFlag.FANCYFEATURE.isActive()

然后,isActive()方法将调用连接到数据库的服务类以获取功能状态。

然而,在我的spring应用程序中,由于Enum类型是静态的,因此无法将bean注入Enum。

有人可以推荐一种干净的方式吗?

2 个答案:

答案 0 :(得分:4)

以下陈述应该告诉你一些错误

  

然后isActive()方法将调用服务类   连接到数据库以获取功能状态

如果您正在获取状态,我们可以假设它可能在不同时间有所不同,即。不是一个常数。请勿使用enum

如果你这样做,回答

  

有人可以推荐一种干净的方式吗?

就像你说的那样,没有办法注入豆子。

答案 1 :(得分:3)

一定要使用enum作为功能列表,但请不要将enum用于可变状态。

最好使用EnumMap<Enum,State>结构来存储enum的可变状态。