如何将vararg作为参数传递给方法?

时间:2016-04-11 14:13:53

标签: java oop variadic-functions

我有一个构造函数,需要将vararg字符串作为参数。 我需要将这些字符串分开并将它们添加到ArrayList中,该部分将执行我的方法。

以下是代码:

private ArrayList<String> answers = new ArrayList<>();
private int index;

public Text(String ... str)
{
    separateVararg(); // How to pass vararg in here
}

如何将此vararg从构造函数作为参数传递给方法?

2 个答案:

答案 0 :(得分:3)

vararg只是一种方便的语法,可以像Text()Text("a")Text("a", "b")一样调用它。
在该方法中,它基本上是String[] 因此,如果您需要它作为列表,请执行Arrays.asList(str) 要将所有重复项添加到answers列表中,只需使用Set之类的中间answers.addAll(new HashSet<>(Arrays.asList(str)));即可 要迭代元素并进行单独检查,只需在str数组上使用for-each循环,或者如果要消除重复项,则在Set上使用。

答案 1 :(得分:0)

String添加到List并改为访问

public Text(String... str)
{
    answers.addAll(Arrays.asList(str));
}

然后,您可以访问answers以获取String