<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢(mèng)蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    org.springframework.core.enums類圖

    Posted on 2007-04-11 15:57 dennis 閱讀(1701) 評(píng)論(0)  編輯  收藏 所屬分類: java源碼解讀
        這個(gè)包按照說明是:Interfaces and classes for type-safe enum support on JDK >= 1.3。提供類型安全的枚舉類型。代碼也是相當(dāng)簡(jiǎn)單,枚舉類型又分為靜態(tài)類型和通用類型。靜態(tài)類型其實(shí)跟jdk1.5引進(jìn)的enum類型類似,都是以int類型做code,比如聲明一個(gè)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";
                }
            };

    同時(shí)有一個(gè)靜態(tài)枚舉類型的處理類用于提取信息:StaticLabeledEnumResolver ——這個(gè)類繼承自抽象類AbstractCachingLabeledEnumResolver,而抽象類實(shí)現(xiàn)了接口LabeledEnumResovler,看看這個(gè)接口就知道所謂處理類是干什么的了:
    public interface LabeledEnumResolver {

        
    //獲取某個(gè)類中聲明的枚舉類型,這些類型   //必須是LabeledEnum的子類
        public Set getLabeledEnumSet(Class type) throws IllegalArgumentException;

        
    public Map getLabeledEnumMap(Class type) throws IllegalArgumentException;
       
        //根據(jù)code獲取枚舉
        
    public LabeledEnum getLabeledEnumByCode(Class type, Comparable code) throws IllegalArgumentException;

        //根據(jù)lable獲取枚舉
        
    public LabeledEnum getLabeledEnumByLabel(Class type, String label) throws IllegalArgumentException;

    }

    StaticLabeledEnumResolver 使用了單例模式,同時(shí)AbstractCachingLabeledEnumResolver定義了一個(gè)模板法方法并使用:
    protected abstract Set findLabeledEnums(Class type);
    也是一個(gè)Template Method模式應(yīng)用的例子。

    所謂通用性的枚舉類型,是指不定義成static,并且可以靈活使用其他類型做code的枚舉,比如spring已經(jīng)內(nèi)置的3種:ShortCodedLabeledEnum ,StringCodeLabeledEnum和LetterCodeLabeledEnum,這些類都繼承自AbstractLabeledEnum,類名已經(jīng)顯示了它們的用途,不再細(xì)說。這個(gè)包完整的類圖如下:
     

    主站蜘蛛池模板: 久久亚洲精品国产亚洲老地址| 国产成人精品日本亚洲| 亚洲av乱码一区二区三区香蕉| 97在线视频免费播放| 精品免费久久久久久久| 中文字幕亚洲精品资源网| 中文字幕免费在线看线人| 亚洲精品一级无码鲁丝片| 男女交性无遮挡免费视频| 亚洲一区日韩高清中文字幕亚洲| 亚洲毛片免费观看| 国产黄色免费观看| 中文字幕精品亚洲无线码二区| 亚洲精华国产精华精华液好用| 暖暖在线日本免费中文| 日韩大片在线永久免费观看网站| 亚洲国产专区一区| 国产免费伦精品一区二区三区| 亚洲砖码砖专无区2023| 久久青青草原亚洲AV无码麻豆| 亚洲国产日韩在线成人蜜芽 | 日韩免费三级电影| 男男gvh肉在线观看免费| 亚洲午夜久久久久妓女影院 | heyzo亚洲精品日韩| 亚洲人成影院在线高清| 国产婷婷成人久久Av免费高清 | 拨牐拨牐x8免费| 人妻巨大乳hd免费看| 四虎影视www四虎免费| 亚洲白色白色永久观看| 午夜成年女人毛片免费观看| 亚洲美女视频一区二区三区| 成人免费视频网址| 亚洲AV综合色区无码二区偷拍| 免费理论片51人人看电影| a级日本高清免费看| 最新国产精品亚洲| 亚洲成色在线综合网站| 免费看无码自慰一区二区| a毛片免费在线观看|