gpt4 book ai didi

java - 使用 Enum 方法调用的值作为注释参数

转载 作者:行者123 更新时间:2023-11-30 10:26:50 25 4
gpt4 key购买 nike

我有

enum Operations { 
OPERATION_NAME("operation/path");
private final String path;

Operations(String path) {
this.path = path;
}

public String path() {
return path;
}
}

我想在我的 REST API 方法的注释上使用路径值

  @Path(Operations.OPERATION_NAME.path())
void operation() {
}

但是 java 编译器报错

Attribute value must be constant

有没有办法在 java8 中解决这个问题?

我知道我可以有一个带有操作名称的枚举和一堆带有路径的静态字符串字段(静态字符串可以用作 @Path 注释中的属性),但我不喜欢这种方法。

最佳答案

不能在注解参数中使用枚举方法,但可以创建类:

public final class Operations {

private Operations() {};

public static final String op1 = "operation/path";
public static final String op2 = "operation2/path";

public enum Enum {

OPERATION1(op1),
OPERATION2(op2);

private final String path;

Enum(final String path) {
this.path = path;
}

public final String path() {
return path;
}
}

}

不会有重复,你仍然可以像以前一样使用你的枚举,以及注释中的static String literals

关于java - 使用 Enum 方法调用的值作为注释参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45568782/

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