使用Enum类型作为@ RolesAllowed-Annotation的值参数

使用Enum类型作为@ RolesAllowed-Annotation的值参数,第1张

使用Enum类型作为@ RolesAllowed-Annotation的值参数

我认为您使用枚举的方法不会奏效。我发现,如果我将

STUDENT_ROLE
最后一个示例中的字段更改为常量字符串而不是表达式,则编译器错误消失了:

public enum RoleType {   ...  public static final String STUDENT_ROLE = "STUDENT";  ...}

但是,这意味着枚举值将不会在任何地方使用,因为您将在注释中使用字符串常量。

在我看来,如果您的

RoleType
类只包含一堆静态最终String常量,那您会更好。


为了了解为什么您的代码未编译,我看了一下Java语言规范(JLS)。批注的JLS
指出,对于参数类型为 T 且值为 V 的批注,

如果 T 是原始类型或

String
,则 V 是常数表达式。

甲常量表达式包括,除其他外,

TypeName 形式的合格名称。 引用常量变量标识符

并将常量定义为

基本类型或类型的变量,该变量

String
是最终变量,并使用编译时常量表达式进行初始化



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5130401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存