一、分析

一般来说,我们经常使用的枚举项只有一个属性,即排序号,其默认值是从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两个常量有一个立体多维的认知,有名称、生命周期、还有范围,而且还可以在程序中方便地获取此类的属性。

三、建议

推荐大家在枚举定义中为每个枚举定义描述,特别是在大规模项目开发中,大量的常量项定义使用枚举项描述比在接口常量或类常量中增加注释的方式更友好得多,简洁的多。

最新文章

  1. 采用cocos2d-x lua 的listview 实现pageview的翻页效果之上下翻页效果
  2. bzoj3048+3049+3050
  3. 【JAVA并发编程实战】11、有界缓存的实现
  4. 【UI插件】简单的日历插件(下)—— 学习MVC思想
  5. XML和JSON数据格式对比
  6. 使用ionic framework创建一个简单的APP
  7. 启动maven项目发现没有tomcat
  8. Cursors in MySQL Stored Procedures
  9. 有效解决 iOS The document “(null)” requires Xcode 8.0 or later.
  10. Hibernate,JPA注解@ManyToMany_JoinTable
  11. 过滤网页中HTML代码的ASP函数
  12. FaceBook页面加载技术
  13. C# dev gridcontrol中添加checkbox复选框
  14. Python之mysql数据库更新表数据接口实现
  15. PHP中的ArrayAccess用法详解
  16. 图解 -- Win10 OpenSSH
  17. iOS 跨App数据共享
  18. Oracle创建Database Link
  19. 安装plsql developer
  20. Key Vertex (hdu 3313 SPFA+DFS 求起点到终点路径上的割点)

热门文章

  1. linux查看系统的日志的一些实用操作
  2. bash快捷建-光标移到行首、行尾等
  3. docker制作node程序镜像:
  4. mac itunes ios 7 升级 出现 this device isn't eligible for the requested build
  5. Android之TextView的样式类Span的使用具体解释
  6. OCP prepare 20140701
  7. 《转载》详解 CSS 属性 - 伪类和伪元素的区别
  8. juce中的CallbackMessage
  9. php的cURL库介绍
  10. C++小知识之Vector排序