如何将String参数传递给ArrayList参数

时间:2011-02-18 05:14:24

标签: java string arraylist parameter-passing casting

我正在尝试将String参数传递给ArrayList参数,如下所示:

Class A {
 public void testA (ArrayList arrayInput) {
      // Implement function
      System.out.println("In testA function");
   }
  String a = "new";
  testA(a);
}

我这样做是因为我想使用相同的函数来传递String值和ArrayList值。有工作吗?

谢谢, 索尼

3 个答案:

答案 0 :(得分:4)

// Option 1: print in String - preferred
public void testA(ArrayList<String> list) {
    for(String str : list) testA(str);
}

public void testA(String s) {
    System.out.println(s);
}



// Option2: print in List - not so preferred
public void testA(ArrayList<String> list) {
    for(String str : list) System.out.println(str);
}

public void testA(String s) {
    ArrayList<String> list = new ArrayList<String>();
    list.add(s);
    testA(list);
}

答案 1 :(得分:2)

如果要使用相同的函数传递两种类型,则必须重载函数:

    Class A {
     public void testA (ArrayList arrayInput) {
          // Implement function
          System.out.println("In testA function");
       }
     public void testA (String stringInput) {
          // Implement function
          System.out.println("In testA function. For String!");
       }
      String a = "new";
      testA(a);
    }

或者你可以编写一个泛型函数:

public void testA<T>(T input){...}

答案 2 :(得分:1)

您可以像其他回答一样建议重写方法。

或者,您只需将String对象包裹在List中,然后将其传递给testA,如下所示:

public static <A> void testA(List<A> list) {
  // some code that works over list
  System.out.println("In testA method");
}

String a = "new";
testA(Arrays.asList(a));