1700446007
1700446008
//中文描述
1700446009
1700446010
private String name;
1700446011
1700446012
//角色的生命期
1700446013
1700446014
private Lifetime lifeTime;
1700446015
1700446016
//权限范围
1700446017
1700446018
private Scope scope;
1700446019
1700446020
Role(String_name, Lifetime_lt, Scope_scope){
1700446021
1700446022
name=_name;
1700446023
1700446024
lifeTime=_lt;
1700446025
1700446026
scope=_scope;
1700446027
1700446028
}
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){
[
上一页 ]
[ :1.700446007e+09 ]
[
下一页 ]