这是我想做的事情:
public void add(Integer... newIntegers) {
for (Integer i : newIntegers) {
integers.add(i);
}
}
我不确定为什么,但是无法将
ArrayList<Integer>
放入方法中。我很高兴只复制Lists方法,但我认为必须有一种更有效的方法。
我尝试了以下想法,认为我可以做一个可以做的事情:
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);
}
}