[英]Default array value in Groovy annotation
我有枚舉和注釋,例如:
enum Permission { user, superuser, admin }
@CompileStatic
@interface Anno {
Permission[] value
}
現在我想為 value 提供一個默認value
,它應該是[ Permission.user ]
。
我嘗試了不同的 groovy 技巧:
Permission[] value default [user]
Permission[] value default ([user] as Permission[])
Permission[] value default (Permission[])[user]
...
但它們都不起作用,因此作為一種解決方法,我在 j4v4 中實現了注釋:
public @interface Anno {
Permission[] value default { user };
}
我錯過了什么?
更新:
解決方案是從注釋中刪除@CompileStatic
。 使用@CompileStatic
編譯拋出:
[靜態類型檢查] - 無法在返回類型 io.domain.Permission[] 的方法上返回類型 java.util.List <io.domain.Permission> 的值
這是一個當前的命名限制,應該刪除,但現在您需要:
Permission[] value() default [Permission.user]
或在您使用user
之前:
import static Permission.user
然后您的原件(添加了缺少的括號)就可以了:
Permission[] value() default [user]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.