Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将vararg作为参数传递给方法?_Java_Oop_Variadic Functions - Fatal编程技术网

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

Java 如何将vararg作为参数传递给方法?,java,oop,variadic-functions,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 } priva

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

代码如下:

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

public Text(String ... str)
{
    separateVararg(); // How to pass vararg in here
}
private ArrayList answers=new ArrayList();
私有整数索引;
公共文本(字符串…str)
{
separatevarg();//如何在此处传递vararg
}

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

字符串添加到
列表中,然后访问该字符串

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

然后您可以访问
答案
以获取您的
字符串。

vararg只是一种方便的语法,可以像
Text()
Text(“a”)
文本(“a”、“b”)
那样调用它
在方法中,它本质上是一个
字符串[]

所以,如果您需要它作为列表,只需执行
Arrays.asList(str)

要将除重复项以外的所有内容添加到
答案列表中,只需使用中间
集合
answers.addAll(新HashSet(Arrays.asList(str))

要迭代元素并进行单独检查,只需在
str
数组或
Set
上使用for-each循环,如果要消除重复项。

我不想将vararg中的所有元素添加到列表中,我需要先进行一些检查,例如,查看其中是否有一些相同的字符串。然后迭代
字符串
,并测试每个字符串,如果它符合您的条件,则将其添加到
列表