The*_*nda 3 java arrays parameters methods list
这是我想要做的:
public void add(Integer... newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但我不能ArrayList<Integer>在方法中加入.
我很高兴只是复制列表的方法,但我认为必须有一个更有效的方法.
我尝试了下面的想法,我可以为catch块做你能做的事情:
public void add(Integer... | List<Integer> newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,在快速StackOverfow之后,发现它是不可能的.还有其他方法吗?
接受的方法Integer...不能使用集合.它只能使用一个Integer数组.
你能做的最好的就是使用方法重载.
public void add(Integer...newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
public void add(List<Integer> newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我会跟上面的坚持,但如果你想避免代码重复,而是构建每次一个新的列表中public void add(Integer...newIntegers) {...}被调用,然后你可以做@Sweeper在评论中曾建议.
public void add(Integer... newIntegers) {
add(Arrays.asList(newIntegers));
}
public void add(List<Integer> newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)