gpt4 book ai didi

java - 错误 : "attribute value must be constant". 我可以在编译时从枚举构造常量吗?

转载 作者:行者123 更新时间:2023-11-30 08:27:59 25 4
gpt4 key购买 nike

下面的代码工作正常,其中 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com