java基礎(chǔ)系列之枚舉<三>

java基礎(chǔ)系列之枚舉<二>中進(jìn)一步將枚舉分類/分組實現(xiàn)枚舉的枚舉舞骆,則需要將其代碼進(jìn)一步修改厅各,以達(dá)到如下要求:
在枚舉E中有枚舉元素A终议、B;
枚舉元素A中有枚舉元素 E1桃漾、E2贷盲、E3淘这、E4 ,這些元素類型和元素B是不同類別巩剖,但又都同屬于枚舉類型E; 元素B同理铝穷。
枚舉元素B中有枚舉元素 E01E02佳魔、E03曙聂、E04 ;

這個時候我們需要將枚舉E中元素分類組織起來, 這里需要用到一個Class<T>類提供的枚舉轉(zhuǎn)型方法:

 /**    
  * Returns the elements of this enum class or null if this    
  * Class object does not represent an enum type.    
  *    
  * @return an array containing the values comprising the enum class    
  *     represented by this Class object in the order they're   
  *     declared, or null if this Class object does not    
  *     represent an enum type    
  * @since 1.5    
  */  
 public T[] getEnumConstants() {
    T[] values = getEnumConstantsShared();
    return (values != null) ? values.clone() : null ;   
}

利用這個方法,可以獲取到對應(yīng)枚舉類中的所有枚舉元素鞠鲜,且返回與聲明順序一致的枚舉元素數(shù)組宁脊。

下面是測試代碼:

public enum AliEnum {

    //歸類
    ELEMENT(IAliEnum.Element.class),ERROR(IAliEnum.Error.class) ;

    //枚舉的枚舉集合
    private IAliEnum[] values ;

    private AliEnum(Class<? extends IAliEnum> iClass) {
        //
        this.values = iClass.getEnumConstants() ;
    }

    //獲取枚舉的枚舉集合
    public IAliEnum[] getValues() {
        return this.values;
    }

    public interface IAliEnum {
        //元素解析
        enum Element implements IAliEnum {
            LICENSENO {
                @Override
                public String getValue() {
                    return "LicenseNO" ;
                }
            },
            ENGINNO {
                //
                @Override
                public String getValue() {
                    return "EnginNo" ;
                }
            },
            VIN {
                @Override
                public String getValue() {
                    return "Vin" ;
                }
            },
            USEYEAR {
                @Override
                public String getValue() {
                    return "UseYear";
                }
            };
            /**
             * <P>獲取元素名</P>
             * @return
             */
            public abstract String getValue() ;
        }
        /**
         * <P>封裝錯誤消息.</P>
         * #author palm
         */
        enum Error implements IAliEnum {
            //自定義錯誤
            SYSERRORCUSTOM {
                @Override
                public Entry getEntry() {
                    return new Entry("123456","你xxx") ;
                }
                @Override
                public Entry getEntry(String errorCode, String errorMsg) {
                    return new Entry(errorCode,errorMsg) ;
                }
            },
            SYSERRORUNDER {
                @Override
                public Entry getEntry() {
                    return new Entry("23456","你pass") ;
                }
                @Override
                public Entry getEntry(String errorCode, String errorMsg) {
                    return new Entry(errorCode,errorMsg) ;
                }
            };
            // error box
            public class Entry {
                String errorCode ,errorMsg ;
                Entry(String errorCode,String errorMsg) {
                    this.errorCode = errorCode ;
                    this.errorMsg = errorMsg ;
                }
                public String getErrorCode() {
                    return this.errorCode ;
                }
                public String getErrorMsg() {
                    return this.errorMsg ;
                }
                //change Msg
                public void setErrorMsg(String errorMsg) {
                    this.errorMsg = errorMsg;
                }
            }
            /**         * <P>獲取預(yù)定消息.</P>
             * @return
             */
            public abstract Entry getEntry() ;
            /**
             * <P>自定義</P>
             * @param errorCode
             * @param errorMsg
             * @return
             */
            public abstract  Entry getEntry(String errorCode,String errorMsg) ;
        }
    }

}

//test

AliEnum.IAliEnum[] aliEnums = AliEnum.ELEMENT.getValues() ;

        for (AliEnum.IAliEnum aliEnum : aliEnums) {
            System.out.println(aliEnum);
        }

我知道在MarkDown模式下粘貼代碼格式錯亂修復(fù)的方法了, 從IDEA中復(fù)制出來的代碼不要直接粘貼過來,現(xiàn)在文本模式下過濾一下在粘貼到簡書就行了贤姆。 哈哈哈

額~~ 見笑 ~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末榆苞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霞捡,更是在濱河造成了極大的恐慌语稠,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弄砍,死亡現(xiàn)場離奇詭異仙畦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)音婶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門慨畸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人衣式,你說我怎么就攤上這事寸士¢苁玻” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵弱卡,是天一觀的道長乃正。 經(jīng)常有香客問我,道長婶博,這世上最難降的妖魔是什么瓮具? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮凡人,結(jié)果婚禮上名党,老公的妹妹穿的比我還像新娘。我一直安慰自己挠轴,他們只是感情好传睹,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岸晦,像睡著了一般欧啤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上启上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天堂油,我揣著相機(jī)與錄音,去河邊找鬼碧绞。 笑死,一個胖子當(dāng)著我的面吹牛吱窝,可吹牛的內(nèi)容都是我干的讥邻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼院峡,長吁一口氣:“原來是場噩夢啊……” “哼兴使!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起照激,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤发魄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后俩垃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體励幼,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年口柳,在試婚紗的時候發(fā)現(xiàn)自己被綠了苹粟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡跃闹,死狀恐怖嵌削,靈堂內(nèi)的尸體忽然破棺而出毛好,到底是詐尸還是另有隱情,我是刑警寧澤苛秕,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布肌访,位于F島的核電站,受9級特大地震影響艇劫,放射性物質(zhì)發(fā)生泄漏吼驶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一港准、第九天 我趴在偏房一處隱蔽的房頂上張望旨剥。 院中可真熱鬧,春花似錦浅缸、人聲如沸轨帜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚌父。三九已至,卻和暖如春毛萌,著一層夾襖步出監(jiān)牢的瞬間苟弛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工阁将, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留膏秫,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓做盅,卻偏偏與公主長得像缤削,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吹榴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • title: java集合框架學(xué)習(xí)總結(jié) tags:集合框架 categories:總結(jié) date: 2017-03...
    行徑行閱讀 1,675評論 0 2
  • 樂助樂仁的香港SSM的平行課堂欄目做的十分好,我經(jīng)常推薦給喜歡從事社工的人图筹。同時我也會分享一些個人心得: 1.因為...
    新其謙閱讀 221評論 0 0
  • 下午送寧寧去畫畫回來我看了一部電影帅刀,電影的名字叫有完沒完远剩。 接了寧寧扣溺,寧寧說在外面吃瓜晤。 于是找了一家比看上去還算干...
    flowerrose閱讀 135評論 0 0
  • 最近一直下雨,石家莊當(dāng)時天氣真是喜怒無常活鹰,上班的時候可不可以不下雨呢~好煩啊 暑假過去快一半了哈恰!什么都還沒做,這可不行啊
    幾近光明閱讀 211評論 0 0
  • 耿耿余淮的青春里着绷,是多少人耿耿于懷的曾經(jīng)。 這青春里曾經(jīng)出現(xiàn)過一個路星河荠医。路星河是應(yīng)該被人心疼的吁脱,他和耿耿是一樣的...
    陌上默然閱讀 686評論 0 0