Cyh的博客

          Email:kissyan4916@163.com
          posts - 26, comments - 19, trackbacks - 0, articles - 220

          可變長參數Varargs

          Posted on 2009-12-20 00:00 啥都寫點 閱讀(292) 評論(0)  編輯  收藏 所屬分類: J2SE
              在J2SE5.0之前,當傳入到方法的參數個數不固定時,經常采用數組的方式傳遞參數。5.0之后,可以使用可變長參數的特性給方法傳遞參數。

             在參數類型和參數名之間使用"...",表示該參數為可變長的。
             通過新的for循環讀取可變長參數中的值


          /**
           * 可變長的參數。
           * 有時候,我們傳入到方法的參數的個數是不固定的,為了解決這個問題,我們一般采用下面的方法:
           * 1.  重載,多重載幾個方法,盡可能的滿足參數的個數。顯然這不是什么好辦法。
           * 2.  將參數作為一個數組傳入。雖然這樣我們只需一個方法即可,但是,
           * 為了傳遞這個數組,我們需要先聲明一個數組,然后將參數一個一個加到數組中。
           * 現在,我們可以使用可變長參數解決這個問題,
           * 也就是使用將參數聲明成可變長參數。顯然,可變長參數必須是最后一個參數。
           
          */

          public class VarArgs {

              
          /**
               * 打印消息,消息數量可以任意多
               * 
          @param debug    是否debug模式
               * 
          @param msgs    待打印的消息
               
          */

              
          public static void printMsg(boolean debug, String  msgs){
                  
          if (debug){
                      
          // 打印消息的長度
                      System.out.println("DEBUG: 待打印消息的個數為" + msgs.length);
                  }

                  
          for (String s : msgs){
                      System.out.println(s);
                  }

                  
          if (debug){
                      
          // 打印消息的長度
                      System.out.println("DEBUG: 打印消息結束");
                  }

              }

              
          /**
               * 重載printMsg方法,將第一個參數類型該為int
               * 
          @param debugMode 是否debug模式
               * 
          @param msgs    待打印的消息
               
          */

              
          public static void printMsg(int debugMode, String  msgs){
                  
          if (debugMode != 0){
                      
          // 打印消息的長度
                      System.out.println("DEBUG: 待打印消息的個數為" + msgs.length);
                  }

                  
          for (String s : msgs){
                      System.out.println(s);
                  }

                  
          if (debugMode != 0){
                      
          // 打印消息的長度
                      System.out.println("DEBUG: 打印消息結束");
                  }

              }

              
              
          public static void main(String[] args) {
                  
          // 調用printMsg(boolean debug, String  msgs)方法
                  VarArgs.printMsg(true);
                  VarArgs.printMsg(
          false"第一條消息""這是第二條");
                  VarArgs.printMsg(
          true"第一條""第二條""這是第三條");
                  
                  
          // 調用printMsg(int debugMode, String  msgs)方法
                  VarArgs.printMsg(1"The first message""The second message");
              }

          }


                                                                                                                 --    學海無涯
                  

          主站蜘蛛池模板: 中牟县| 怀来县| 安西县| 盐亭县| 香河县| 安平县| 和林格尔县| 保山市| 祁阳县| 武安市| 横峰县| 五寨县| 衡南县| 会泽县| 柞水县| 津南区| 二连浩特市| 福安市| 营口市| 阿城市| 讷河市| 阿尔山市| 龙江县| 安平县| 岳普湖县| 曲松县| 定日县| 新蔡县| 高淳县| 扎鲁特旗| 镇原县| 广丰县| 深州市| 石首市| 陈巴尔虎旗| 安康市| 台安县| 团风县| 裕民县| 长春市| 远安县|