`

org.springframework.core.enums类图

阅读更多
    这个包按照说明是: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(11null) {
            
// 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,类名已经显示了它们的用途,不再细说。这个包完整的类图如下:
 



dennis 2007-04-11 15:57 发表评论
分享到:
评论

相关推荐

    org.apache.commons.lang jar包下载(commons-lang3-3.1.jar)

    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 jar包下载

    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枚举

    在Java编程语言中,`Enum`(枚举)是一种特殊的类类型,用于定义固定的、预定义的常量集合。它们在程序设计中扮演着重要的角色,特别是在需要表示一组固定值时,如状态、颜色、星期等。本资源包提供了一些关于`Enum`...

    金蝶BOSV6.1_业务组件API参考手册

    Packages ...com.kingdee.bos.transaction.springframework.aop.framework com.kingdee.bos.transaction.springframework.beans.factory com.kingdee.bos.transaction.springframework.core ...

    commons-lang.jar

    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....

    定时任务cron 解析为中文.docx

    6. `org.springframework.util.Assert`:Spring Framework提供的断言工具类。 `CronExpParserUtil`的核心方法是`translateToChinese`,它接受一个cron表达式字符串作为输入,并返回该表达式的中文解释。在方法中,...

    C++草案n2347_Strongly Typed Enums.pdf

    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...

    commons-lang3-3.1 API

    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已不建议使用,替代它的是...

    深入解析Go

    if (application.configuration.DamConfigurations.uploadMethod == enums.UploadMethod.PinAnCloud) { imageData.fileName=RIS.newGuid(); } else if (application.configuration.DamConfigurations.uploadMethod...

    Datenverwaltungssystem

    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

    flex布局简洁说明文档

    if (application.configuration.DamConfigurations.uploadMethod == enums.UploadMethod.PinAnCloud) { imageData.fileName=RIS.newGuid(); } else if (application.configuration.DamConfigurations.uploadMethod...

    完善的C#/ASP.NET版DBHelper,配套Model生成器

    public List&lt;BS_Template&gt; GetList(ref PagerModel pager, string noticeType, string coreType, string name, Enums.TemplateType templateType) { StringBuilder sql = new StringBuilder(string.Format(@" ...

    收集的MSSQL练习题

    这些SQL练习题主要涉及到在关系型数据库中使用标准SQL进行数据查询和操作。以下是各题目的详细解析: **题目1**: 此题目的目的是找出选修了课程名称为'税收基础'的学员学号和姓名。实现代码使用了嵌套查询,首先在...

    基于SpringBoot的图书馆管理系统项目源码+数据库+项目说明(课程设计).zip

    org.springframework.boot &emsp;&emsp;&emsp;&emsp;spring-boot-starter-data-mongodb &emsp;&emsp;&emsp;&emsp;spring-boot-starter-data-redis &emsp;&emsp;&emsp;&emsp;spring-boot-starter-mail...

    基于SpringBoot的图书馆管理系统源码+数据库+项目说明(毕设).zip

    org.springframework.boot &emsp;&emsp;&emsp;&emsp;spring-boot-starter-data-mongodb &emsp;&emsp;&emsp;&emsp;spring-boot-starter-data-redis &emsp;&emsp;&emsp;&emsp;spring-boot-starter-mail...

    Enums.NET:Enums.NET是一种高性能的类型安全的.NET枚举实用程序库

    v4.0的变化删除了v3.0中不推荐使用的NonGenericEnums , NonGenericFlagEnums , UnsafeEnums和UnsafeFlagEnums类,同时还删除了所有其他不推荐使用的方法,以缩小库的大小。 建议从2.x及以下版本升级到3.x,然后...

    Jakarta Commons笔记

    - **org.apache.commons.lang.enum**:该包已不再推荐使用,建议使用`org.apache.commons.lang.enums`。 - **org.apache.commons.lang.enums**:用于处理枚举类型。 - **org.apache.commons.lang.exception**:增强...

    Commons培训

    3. **org.apache.commons.lang.enum**:这是一个旧的枚举处理包,现在已被废弃,推荐使用`org.apache.commons.lang.enums`。 4. **org.apache.commons.lang.enums**:用于处理枚举类型,提供了一些便利的方法来操作...

    common-lang3.jar

    4. **枚举处理**:`org.apache.commons.lang3.enums`支持枚举类型的扩展和操作,提供了一些方便的枚举工具类。 5. **数组操作**:`org.apache.commons.lang3.array`包含各种数组处理方法,如`ArrayUtils`提供数组的...

    atr-connector:用于 angular-test-reporter 的 Java 连接器

    atr-连接器 这个项目是一个用于的 java 连接器。 当您运行“maven clean install”时,它会生成“atr-connector-xxx-SNAPSHOT-jar-with-dependencies.jar”,这个jar用于将java项目...import atr.connect.enums.TestS

Global site tag (gtag.js) - Google Analytics