请教java方法的参数问题。
我的java类中有两个方法,如下:
public void method1(String q1,String q2,String q3,String q4)
{
   //下面四个方法如何使用一个循环完成?
    m2(q1);
    m2(q2);
    m2(q3);
    m2(q4);
}
public void m2(String q)
{
}
在方法method1中如何写一个循环完成m2方法的调用?

解决方案 »

  1.   


    String[] s =new String[4];
    s[0] = q1;
    s[1] = q2;
    s[2] = q3;
    s[3] = q4;public   void   method1(String[]   s) 

          for(int i = 0;i < s.length;i++){
                 m2(s[i];
          }

    public   void   m2(String   q) 


      

  2.   


    public class Test {
    public static void main(String[] args) {
        Test t = new Test();
        String[] aa = {"a1","a2","a3","a4"};
        t.method1(aa);
    }
    public void method1(String[] a) {
    for(int i=0;i<=3;i++) {
    method2(a[i]);
    }
    }
    public void method2(String b) {

    }
    }
      

  3.   

    String[] s =new String[4];
    s[0] = q1;
    s[1] = q2;
    s[2] = q3;
    s[3] = q4;public   void   method1(String[]   s) 

          for(int i = 0;i < s.length;i++){
                 m2(s[i];
          }

    public   void   m2(String   q) 


      

  4.   

    J2SE5以上可以用可变参数列表
      

  5.   

    直接使用参数列表循环
      
    for(int i=0;i< arguments.length ;i++){
      m2(arguments[i]);
    }
      

  6.   


    加个方法就可以实现了:
    package study;public class Test1 {
    public void method1(String q1, 
    String q2, String q3, String q4) {
    m2(q1,q2,q3,q4);

    } public void m2(String q) {
    System.out.println("m2 :" + q);
    }

    public void m2(String...args){
    for(String s : args){
    m2(s);
    }
    }

    public static void main(String[] args){
    Test1 t = new Test1();
    t.method1("x", "y", "z", "w");
    }}OutPut:
    m2 :x
    m2 :y
    m2 :z
    m2 :w
      

  7.   


    public void method1(String q1, String q2, String q3, String q4) {
    String[] param = { q1, q2, q3, q4 };
    for (int i = 0; i < param.length; i++) {
    m2(param[i]);
    }
    } public void m2(String q) { }
      

  8.   

    public   void   method1(String... arr) 

        for (int i = 0;i<arr.length;i++) {
           m2(arr[i]);
        }