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

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

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

    隨筆-8  評(píng)論-39  文章-0  trackbacks-0

    編寫程序有時(shí)會(huì)用到有序常量。一個(gè)常見的情況是對(duì)命令行參數(shù)進(jìn)行處理,如下的代碼片段:

     

    public class A {

               

                …….

                private static final int PARAM_1 = 0;

                private static final int PARAM_2 = 1;

                private static final int PARAM_3 = 2;

                private static final int PARAM_4 = 3;

                private static final int PARAMS_COUNT = 4;

                …….

               

                public static void main(String[] args) {

                           

                            if (args.length != PARAMS_COUNT) {

                                        System.out.println("Usage: program <Param_1> <Param_2> <Param_3> <Param_3> <Param_4>");

                                        System.exit(1);

                            }

                            callFun1(args[PARAM_1], args[PARAM_2]);

                            callFun2(args[PARAM_1], args[PARAM_3], args[PARAM_4]);

                }

    }

     

    PARAM_1PARAM_4就是我這里說的有序產(chǎn)量,這樣的常量通常被賦予一段順序的值。但如果像上面這段代碼的寫法,將會(huì)在程序維護(hù)時(shí)帶來一些小麻煩。比如增加一個(gè)新的產(chǎn)量PARAM_5,除了需要定義型的常量以外,還需要調(diào)整PARAMS_COUNT的值。如果需要在原序列中插入一個(gè)新的常量,那就更麻煩了,不僅需要調(diào)整PARAMS_COUNT的值,還需要調(diào)整插入位置之后的常量的值。如在上面的代碼中插入一個(gè)常量PARAM_NEWPARAM_3的位置:

               

                …….

                private static final int PARAM_1 = 0;

                private static final int PARAM_2 = 1;

                private static final int PARAM_NEW = 2          // New Constant

                private static final int PARAM_3 = 3;                // Need Changed

                private static final int PARAM_4 = 4;                // Need Changed

                private static final int PARAMS_COUNT = 5;  // Need Changed

                …….

               

     

    其實(shí)我們只需要引入一個(gè)靜態(tài)變量就可以比較好的解決這個(gè)問題。下面是修改后的代碼:

     

    public class A {

               

                …….

                private static int PARAM_INDEX = 0;

                private static final int PARAM_1 = PARAM_INDEX++;

                private static final int PARAM_2 = PARAM_INDEX++;

                private static final int PARAM_3 = PARAM_INDEX++;

                private static final int PARAM_4 = PARAM_INDEX++;

                private static final int PARAMS_COUNT = PARAM_INDEX;

                …….

               

    }

     

    在新的代碼中,我們引入了一個(gè)變量PARAM_INDEX,并賦予一個(gè)初始值(這里是零),借助于對(duì)這個(gè)變量,我們消除了硬編碼常量的值帶來的那些弊端。同樣插入一個(gè)新的常量,現(xiàn)在我們只需要增加新的內(nèi)容,而不需要改變?cè)械拇a了。代碼如下:

     

    public class A {

               

                …….

                private static int PARAM_INDEX = 0;

                private static final int PARAM_1 = PARAM_INDEX++;

                private static final int PARAM_2 = PARAM_INDEX++;

                private static final int PARAM_NEW = PARAM_INDEX++;  // New Constant

                private static final int PARAM_3 = PARAM_INDEX++;

                private static final int PARAM_4 = PARAM_INDEX++;

                private static final int PARAMS_COUNT = PARAM_INDEX;

                …….

               

    }

     

    posted on 2007-04-10 17:19 Jini 閱讀(1547) 評(píng)論(4)  編輯  收藏 所屬分類: JDK相關(guān)

    評(píng)論:
    # re: 初始化有序常量的一點(diǎn)小技巧 2007-04-10 18:25 | TiGERTiAN
    呵呵,有意思  回復(fù)  更多評(píng)論
      
    # re: 初始化有序常量的一點(diǎn)小技巧 2007-04-11 10:40 | itspy
    是個(gè)有用的小技巧。  回復(fù)  更多評(píng)論
      
    # re: 初始化有序常量的一點(diǎn)小技巧 2007-04-11 11:16 | Web 2.0 技術(shù)資源
    嘿嘿!~   回復(fù)  更多評(píng)論
      
    # re: 初始化有序常量的一點(diǎn)小技巧 2012-07-23 10:58 | GrimRaider
    主站蜘蛛池模板: 亚洲AV综合色区无码二区爱AV| 久久精品国产亚洲av瑜伽| 免费观看成人毛片a片2008| 亚洲人成人无码.www石榴| 亚洲裸男gv网站| 免费播放一区二区三区| 亚洲乱妇熟女爽到高潮的片| 亚洲男女内射在线播放| 国产在线观看片a免费观看| 无套内谢孕妇毛片免费看看| 无码久久精品国产亚洲Av影片| 成人免费a级毛片| 成人免费a级毛片无码网站入口| mm1313亚洲国产精品无码试看| 亚洲狠狠婷婷综合久久久久 | 久久青草免费91线频观看站街| 国产成人精品日本亚洲18图| 亚洲熟伦熟女新五十路熟妇| 24小时日本韩国高清免费| 免费中文字幕视频| 亚洲成aⅴ人片在线观| 亚洲AⅤ无码一区二区三区在线| 嘿嘿嘿视频免费网站在线观看| 羞羞漫画在线成人漫画阅读免费| 久久久久久亚洲AV无码专区| 日韩精品电影一区亚洲| 4hu四虎最新免费地址| 四虎国产精品免费永久在线| 亚洲乱亚洲乱妇24p| 亚洲高清视频在线播放| 久久久久亚洲精品男人的天堂| 成年私人影院免费视频网站| 日韩精品免费在线视频| 一级毛片免费播放试看60分钟| 久久久久se色偷偷亚洲精品av| 亚洲成AV人片在线观看无| 亚洲福利精品电影在线观看| 成年人免费观看视频网站| 鲁大师在线影院免费观看| 热久久这里是精品6免费观看| 国产成人亚洲精品91专区高清 |