作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的代码工作正常,其中 PROCESS_UPDATES 是一个常量。
public static final String PROCESS_UPDATES = "ProcessUpdates";
public static final String PROCESS_UPDATES = "ProcessSnapshots";
// etc....
@Produce(uri = "seda:" + MyClass.PROCESS_UPDATES)
protected ProducerTemplate processUpdatesTemplate;
然而,为了避免到处都是十亿个常量字符串,我尝试了一种枚举设计模式。
public enum Route { ProcessUpdates, ProcessSnapshots }
在大多数情况下,我可以编写 "seda:"+ Route.ProcessSnapshots
,它看起来更整洁。
但是我可信赖的测试代码现在失败了,因为注释中的 uri 必须是常量。
@Produce(uri = "seda:" + MyClass.Route.ProcessUpdates) // compiler error
protected ProducerTemplate processUpdatesTemplate;
错误:属性值必须是常量
。
问题是,Route.ProcessUpdates.toString()
有点"is"常量,但编译器并不这么认为。
我头一读about constants and annotations但我没有看到任何答案。
那么有没有一种在 java 编译时从枚举构造常量字符串的好方法?
感谢任何提示。维京史蒂夫
最佳答案
我没有找到解决这个问题的方法。
据我所知,这是不可能的。
我需要使用字符串常量...public static final String XYZ = "Xyz";
- 等等
关于java - 错误 : "attribute value must be constant". 我可以在编译时从枚举构造常量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20497162/
我是一名优秀的程序员,十分优秀!