Java 为什么可以';我不能计算一个常量注释参数吗?

Java 为什么可以';我不能计算一个常量注释参数吗?,java,annotations,Java,Annotations,为什么要编译以下代码: final String name = "works"; @Provides @Named(name) String provideAboutTitle() { return "ABC"; } 但以下代码失败(至少在Eclipse编译器中是这样): Eclipse的编译器返回以下错误: 名为.value的注释属性的值必须是常量表达式Eclipse在错误消息中要求的常量表达式是编译时常量表达式(不仅仅是最终变量),方法调用UUID.randomUUID().toSt

为什么要编译以下代码:

final String name = "works";
@Provides @Named(name) String provideAboutTitle() {
   return "ABC";
}
但以下代码失败(至少在Eclipse编译器中是这样):

Eclipse的编译器返回以下错误:


名为.value的注释属性的值必须是常量表达式

Eclipse在错误消息中要求的常量表达式是编译时常量表达式(不仅仅是最终变量),方法调用
UUID.randomUUID().toString()需要在运行时进行评估


虽然可以,但您将失去注释的“易于阅读”功能。

第二个示例不是一个常数???有关可能的解决方案,请参见此处:有关可能的解决方案,请参见此处:
final String name = UUID.randomUUID().toString();
@Provides @Named(name) String provideAboutTitle() {
   return "ABC";
}