1700446029
1700446030
/*name、lifeTime、scope的get方法较简单,不再赘述*/
1700446031
1700446032
}
1700446033
1700446034
这是一个角色定义类,描述了两个角色:管理员(Admin)和普通用户(User),同时它还通过构造函数对这两个角色进行了描述:
1700446035
1700446036
name:表示的是该角色的中文名称。
1700446037
1700446038
lifeTime:表示的是该角色的生命期,也就是多长时间该角色失效。
1700446039
1700446040
scope:表示的是该角色的权限范围。
1700446041
1700446042
读者可以看出,这样一个描述可以使开发者对Admin、User两个常量有一个立体多维度的认知,有名称、生命期,还有范围,而且还可以在程序中方便地获得此类的属性。
1700446043
1700446044
推荐大家在枚举定义中为每个枚举项定义描述,特别是在大规模的项目开发中,大量的常量项定义使用枚举项描述比在接口常量或类常量中增加注释的方式友好得多,简洁得多。
1700446045
1700446046
1700446047
1700446048
1700446050
编写高质量代码:改善Java程序的151个建议 建议85:小心switch带来的空值异常
1700446051
1700446052
使用枚举定义常量时,会伴有大量的switch语句判断,目的是为每个枚举项解释其行为,例如这样一个方法:
1700446053
1700446054
public static void doSports(Season season){
1700446055
1700446056
switch(season){
1700446057
1700446058
case Spring:
1700446059
1700446060
System.out.println(“春天放风筝”);
1700446061
1700446062
break;
1700446063
1700446064
case Summer:
1700446065
1700446066
System.out.println(“夏天游泳”);
1700446067
1700446068
break;
1700446069
1700446070
case Autumn:
1700446071
1700446072
System.out.println(“秋天捉知了”);
1700446073
1700446074
break;
1700446075
1700446076
case Winter:
1700446077
1700446078
System.out.println(“冬天滑冰”);
[
上一页 ]
[ :1.700446029e+09 ]
[
下一页 ]