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編譯器上標註使用路徑值抱怨
屬性值必須爲常數
有沒有辦法解決在java8中?
我知道我可以有一個枚舉操作名稱和一堆帶路徑的靜態字符串字段(靜態字符串可以用作@Path註釋中的屬性),但我不喜歡這種方法。
Annotation屬性值必須在編譯時計算,而enum實例只能在運行時計算。 –
@UsagiMiyamoto不是'enum'而是方法。 'Enum'可以用作註釋的參數 – ByeBye
實例無法在編譯時進行評估,因爲它們在類加載時創建它們的引用... –