在我的图书馆里有一个“用户级别”的概念。我提供了几个默认级别,但是出于各种原因,我想让用户选择使用自己的级别。
目前这是作为
public interface AdminLevel {
public void name();
}
public enum StandardAdminLevels implements AdminLevel {
ADMIN,
ANONYMOUS
}
问题是用户通常会在注解中传递所需的用户级别。我尝试过但失败的事情:
使用adminlevel作为类型-失败,返回“invalid type for annotation member”
使用字符串作为类型,但将值设置为 StandardAdminLevels.ADMIN.name()
-失败,返回“属性值必须为常量”
使standardadminlevels成为一个final类,该类不使用每个级别的公共静态final字段实现任何内容(本质上是一个枚举)-失败的原因是“invalid type for annotation member”
有没有其他我想不出的方法在注解中有可扩展的枚举?由于枚举的清晰性和对无效值的基本保护,我尝试使用枚举,但我能想到的唯一其他方法是字符串常量。我遇到的问题是,需要在使用的每个单点用户级别上进行验证,甚至可能在客户端代码中
有什么想法吗?
1条答案
按热度按时间bzzcjhmw1#
一个想法:每一个可能的adminlevel都是它自己的类。通过
Class
类的注解。