Groovy 注释中的默认数组值
Default array value in Groovy annotation
我有像这样的枚举和注释:
enum Permission { user, superuser, admin }
@CompileStatic
@interface Anno {
Permission[] value
}
现在我想为 value
提供一个默认值,它应该是 [ Permission.user ]
。
我尝试了不同的 groovy 技巧:
Permission[] value default [user]
Permission[] value default ([user] as Permission[])
Permission[] value default (Permission[])[user]
...
但其中 none 有效,因此作为一种解决方法,我在 j4v4 中实现了注释:
public @interface Anno {
Permission[] value default { user };
}
我错过了什么?
更新:
解决方案是从注释中删除 @CompileStatic
。
使用 @CompileStatic
编译抛出:
[Static type checking] - Cannot return value of type java.util.List <io.domain.Permission> on method returning type io.domain.Permission[]
这是一个当前的命名限制,应该被删除,但现在您需要:
Permission[] value() default [Permission.user]
或在您使用 user
之前:
import static Permission.user
然后您的原件(添加了缺少的括号)就可以了:
Permission[] value() default [user]
我有像这样的枚举和注释:
enum Permission { user, superuser, admin }
@CompileStatic
@interface Anno {
Permission[] value
}
现在我想为 value
提供一个默认值,它应该是 [ Permission.user ]
。
我尝试了不同的 groovy 技巧:
Permission[] value default [user]
Permission[] value default ([user] as Permission[])
Permission[] value default (Permission[])[user]
...
但其中 none 有效,因此作为一种解决方法,我在 j4v4 中实现了注释:
public @interface Anno {
Permission[] value default { user };
}
我错过了什么?
更新:
解决方案是从注释中删除 @CompileStatic
。
使用 @CompileStatic
编译抛出:
[Static type checking] - Cannot return value of type java.util.List <io.domain.Permission> on method returning type io.domain.Permission[]
这是一个当前的命名限制,应该被删除,但现在您需要:
Permission[] value() default [Permission.user]
或在您使用 user
之前:
import static Permission.user
然后您的原件(添加了缺少的括号)就可以了:
Permission[] value() default [user]