这个包按照说明是:Interfaces and classes for type-safe enum support on JDK >= 1.3。提供类型安全的枚举类型。代码也是相当简单,枚举类型又分为静态类型和通用类型。静态类型其实跟jdk1.5引进的enum类型类似,都是以int类型做code,比如声明一个Dog类型:
<!---->public static class Dog extends StaticLabeledEnum {
private Dog(int code, String name) {
super(code, name);
}
}
然后就可以这样声明枚举类型了:
<!---->public static final Dog BORDER_COLLIE = new Dog(13, "Border Collie");
public static final Dog WHIPPET = new Dog(14, "Whippet");
public static final Dog GOLDEN_RETRIEVER = new Dog(11, null) {
// must set type to be recognized as a "Dog"
public Class getType() {
return Dog.class;
}
public String getLabel() {
return "Golden Retriever";
}
};
同时有一个静态枚举类型的处理类用于提取信息:StaticLabeledEnumResolver
——这个类继承自抽象类AbstractCachingLabeledEnumResolver,而抽象类实现了接口LabeledEnumResovler,看看这个接口就知道所谓处理类是干什么的了:
<!---->public interface LabeledEnumResolver {
//获取某个类中声明的枚举类型,这些类型 //必须是LabeledEnum的子类
public Set getLabeledEnumSet(Class type) throws IllegalArgumentException;
public Map getLabeledEnumMap(Class type) throws IllegalArgumentException;
//根据code获取枚举
public LabeledEnum getLabeledEnumByCode(Class type, Comparable code) throws IllegalArgumentException;
//根据lable获取枚举
public LabeledEnum getLabeledEnumByLabel(Class type, String label) throws IllegalArgumentException;
}
StaticLabeledEnumResolver
使用了单例模式,同时AbstractCachingLabeledEnumResolver定义了一个模板法方法并使用:
<!---->protected abstract Set findLabeledEnums(Class type);
也是一个Template Method模式应用的例子。
所谓通用性的枚举类型,是指不定义成static,并且可以灵活使用其他类型做code的枚举,比如spring已经内置的3种:ShortCodedLabeledEnum
,StringCodeLabeledEnum和LetterCodeLabeledEnum,这些类都继承自AbstractLabeledEnum,类名已经显示了它们的用途,不再细说。这个包完整的类图如下:
分享到:
相关推荐
org.apache.commons.lang.enums.Enum$Entry.class org.apache.commons.lang.enums.Enum.class org.apache.commons.lang.enums.EnumUtils.class org.apache.commons.lang.enums.ValuedEnum.class org.apache....
org.apache.commons.lang.enums.Enum$Entry.class org.apache.commons.lang.enums.Enum.class org.apache.commons.lang.enums.EnumUtils.class org.apache.commons.lang.enums.ValuedEnum.class org.apache....
在Java编程语言中,`Enum`(枚举)是一种特殊的类类型,用于定义固定的、预定义的常量集合。它们在程序设计中扮演着重要的角色,特别是在需要表示一组固定值时,如状态、颜色、星期等。本资源包提供了一些关于`Enum`...
Packages ...com.kingdee.bos.transaction.springframework.aop.framework com.kingdee.bos.transaction.springframework.beans.factory com.kingdee.bos.transaction.springframework.core ...
org.apache.commons.lang.enums.Enum$Entry.class org.apache.commons.lang.enums.Enum.class org.apache.commons.lang.enums.EnumUtils.class org.apache.commons.lang.enums.ValuedEnum.class org.apache.commons....
6. `org.springframework.util.Assert`:Spring Framework提供的断言工具类。 `CronExpParserUtil`的核心方法是`translateToChinese`,它接受一个cron表达式字符串作为输入,并返回该表达式的中文解释。在方法中,...
Strongly Typed Enums (revision 3) C++ [C++03] provides only incremental improvements over C [C99] enums. Problems remain, notably in the areas of type safety, unintended errors, code clarity, and code...
org.apache.commons.lang.enums org.apache.commons.lang.exception org.apache.commons.lang.math org.apache.commons.lang.mutable org.apache.commons.lang.time 其中的lang.enum已不建议使用,替代它的是...
if (application.configuration.DamConfigurations.uploadMethod == enums.UploadMethod.PinAnCloud) { imageData.fileName=RIS.newGuid(); } else if (application.configuration.DamConfigurations.uploadMethod...
java 1 org.intercard.template.aop2 org.intercard.template.data.db3 org.intercard....enums7 org.intercard.template.data.db.ex8 org.intercard.template.ex9 org.intercard.template.service10 org.intercard.t
if (application.configuration.DamConfigurations.uploadMethod == enums.UploadMethod.PinAnCloud) { imageData.fileName=RIS.newGuid(); } else if (application.configuration.DamConfigurations.uploadMethod...
public List<BS_Template> GetList(ref PagerModel pager, string noticeType, string coreType, string name, Enums.TemplateType templateType) { StringBuilder sql = new StringBuilder(string.Format(@" ...
这些SQL练习题主要涉及到在关系型数据库中使用标准SQL进行数据查询和操作。以下是各题目的详细解析: **题目1**: 此题目的目的是找出选修了课程名称为'税收基础'的学员学号和姓名。实现代码使用了嵌套查询,首先在...
org.springframework.boot     spring-boot-starter-data-mongodb     spring-boot-starter-data-redis     spring-boot-starter-mail...
org.springframework.boot     spring-boot-starter-data-mongodb     spring-boot-starter-data-redis     spring-boot-starter-mail...
v4.0的变化删除了v3.0中不推荐使用的NonGenericEnums , NonGenericFlagEnums , UnsafeEnums和UnsafeFlagEnums类,同时还删除了所有其他不推荐使用的方法,以缩小库的大小。 建议从2.x及以下版本升级到3.x,然后...
- **org.apache.commons.lang.enum**:该包已不再推荐使用,建议使用`org.apache.commons.lang.enums`。 - **org.apache.commons.lang.enums**:用于处理枚举类型。 - **org.apache.commons.lang.exception**:增强...
3. **org.apache.commons.lang.enum**:这是一个旧的枚举处理包,现在已被废弃,推荐使用`org.apache.commons.lang.enums`。 4. **org.apache.commons.lang.enums**:用于处理枚举类型,提供了一些便利的方法来操作...
4. **枚举处理**:`org.apache.commons.lang3.enums`支持枚举类型的扩展和操作,提供了一些方便的枚举工具类。 5. **数组操作**:`org.apache.commons.lang3.array`包含各种数组处理方法,如`ArrayUtils`提供数组的...
atr-连接器 这个项目是一个用于的 java 连接器。 当您运行“maven clean install”时,它会生成“atr-connector-xxx-SNAPSHOT-jar-with-dependencies.jar”,这个jar用于将java项目...import atr.connect.enums.TestS