Java 注释中的枚举

Java 注释中的枚举,java,static,enums,annotations,Java,Static,Enums,Annotations,我有一个无法更改的注释,它需要两个String参数 我想这样使用它: @RequestMapping( MyUrls.FOO.a, MyUrls.FOO.b ) 这就是我想象的实现它的方式 public enum MyUrls { FOO("a", "b"), BAR("c", "d"); public String a, b; MyUrls(String a, String b) { this.a = a; this.b =

我有一个无法更改的注释,它需要两个
String
参数

我想这样使用它:

@RequestMapping( MyUrls.FOO.a, MyUrls.FOO.b )
这就是我想象的实现它的方式

public enum MyUrls {
    FOO("a", "b"), 
    BAR("c", "d");

    public String a, b;
    MyUrls(String a, String b) {
        this.a = a;
        this.b = b;
    }
}
这不起作用,因为无法静态解析
a
b

我有什么比以下更好的选择


虽然你的问题看起来不像一个问题,而是一个宣言,但我同意你的看法。
定义批注时不能使用枚举成员。只有“实”常量,即静态最终字段和常量表达式才适用。因此,现在没有好的选择

可以使用静态内部类对字符串进行分组

class MyUrls {
    public static final class Foo{
       public static final String A = "";
       public static final String B = "";
       // ...
    }
}
//works as
MyUrls.Foo.A
class MyUrls {
    public static final class Foo{
       public static final String A = "";
       public static final String B = "";
       // ...
    }
}
//works as
MyUrls.Foo.A