提高你的Java代码质量吧:使用构造函数协助描述枚举项
2024-10-19 03:27:48
一、分析
一般来说,我们经常使用的枚举项只有一个属性,即排序号,其默认值是从0、1、2... ...。但是除了排序号外,枚举还有一个(或多个)属性。
二、场景
比如,可以通过枚举构造函数声明业务值,定义可选项,添加属性,看如下代码:
enum Role{
Admin("管理员",new Lifetime(),new Scope());
User("普通用户",new Lifetime(),new Scope()); //中文描述
private String name;
//角色生命周期
private Lifetime lifeTime;
//权限范围
private Scope scope; Role(String _name,Lifetime _lt,Scope _scope){
name = _name;
lifeTime = _lifeTime;
scope = _scope;
}
/**name,lifeTime,scope的get方法较简单,不再赘述*/
}
可以看书,这样一个描述可以使开发者对Admin、User两个常量有一个立体多维的认知,有名称、生命周期、还有范围,而且还可以在程序中方便地获取此类的属性。
三、建议
推荐大家在枚举定义中为每个枚举定义描述,特别是在大规模项目开发中,大量的常量项定义使用枚举项描述比在接口常量或类常量中增加注释的方式更友好得多,简洁的多。
最新文章
- 采用cocos2d-x lua 的listview 实现pageview的翻页效果之上下翻页效果
- bzoj3048+3049+3050
- 【JAVA并发编程实战】11、有界缓存的实现
- 【UI插件】简单的日历插件(下)—— 学习MVC思想
- XML和JSON数据格式对比
- 使用ionic framework创建一个简单的APP
- 启动maven项目发现没有tomcat
- Cursors in MySQL Stored Procedures
- 有效解决 iOS The document “(null)” requires Xcode 8.0 or later.
- Hibernate,JPA注解@ManyToMany_JoinTable
- 过滤网页中HTML代码的ASP函数
- FaceBook页面加载技术
- C# dev gridcontrol中添加checkbox复选框
- Python之mysql数据库更新表数据接口实现
- PHP中的ArrayAccess用法详解
- 图解 -- Win10 OpenSSH
- iOS 跨App数据共享
- Oracle创建Database Link
- 安装plsql developer
- Key Vertex (hdu 3313 SPFA+DFS 求起点到终点路径上的割点)