这是我正在尝试做的:
public void add(Integer... newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
我不确定为什么,但我不能输入 ArrayList<Integer>
进入方法。
我非常乐意复制列表的方法,但我认为必须有更有效的方法。
我尝试了以下想法,认为我可以为 catch block 做你能做的事情:
public void add(Integer... | List<Integer> newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
但是,快速浏览了一下 StackOverfow 后,发现这是不可能的。还有其他办法吗?
最佳答案
接受 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);
}
}
就我个人而言,我会坚持上面的做法,但如果您想避免代码重复,而是每次都构造一个新列表,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);
}
}
关于java - 为什么列表不能包含在 `Integer...` 参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49966244/