問題:
在Java中,是否可以使用字串註解參數常數還是數組常數?註釋參數在編譯時進行評估,這可能會阻止此功能。
所需語法的範例是:
@SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... }
其中 FieldValues 是具有常數數組 FIELD1 的介面。
答案:
根據 Java 語言規範15.28,編譯時常數只能是原語和字串。這意味著不可能使用陣列常數來初始化註解參數。
說明:
註釋在編譯時評估,並且它們保存的值到時候應該就知道了。陣列不是編譯時常數,因為它們的元素可以在執行時修改。因此,不可能使用陣列常數作為註解參數。
可能的解決方案:
注意:
即使陣列被定義為final,它仍然不是一個編譯時常數,並且它的元素可以被反射地修改.
以上是Java中的註解參數可以用字串或陣列常數初始化嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!