簡體   English   中英

Groovy 注釋中的默認數組值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM