Java将语法为“ ...”的数组参数添加到列表中

时间:2019-02-06 13:13:33

标签: java arrays arraylist

我想将参数方法中的所有id缓存到一个列表中。我尝试了这个,但是编译器错误

private List<Integer> idsCache = new ArrayList<>();
...
String getSomeObject(int... ids) {
    this.idsCache.addAll(ids);
    ...
}

如何在Java列表中添加...数组参数?

我也尝试过this.idsCache.addAll(Arrays.asList(ids));

我可以不更改id的类型吗?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

idsCache.addAll(Arrays.asList(ids));

编辑:以上解决方案不起作用。这是将原语装箱的Java 8解决方案:

idsCache.addAll(Arrays.stream(ids).boxed().collect(Collectors.toList()));

答案 1 :(得分:0)

由于使用的是原始类型,因此必须执行以下操作。

String getSomeObject(int... ids) {
  for (int id : ids) {
    this.idsCache.add(id);
  }
}

或者您可以更改函数以采用整数。

String getSomeObject(Integer... ids) {
    this.idsCache.addAll(id);
}