首页 > 解决方案 > 方法中的参数, Object... VS Object[] ,这两者是否具有相同的功能?

问题描述

我有一个方法如下:

public IndexRequest source(XContentType xContentType, Object... source) {
    // some process
}

我知道如何使用它:

new IndexRequest().source(XContentType.JSON, "field", "baz", "fox"));

现在,我想像这样使用它:

List<String> list = new ArrayList(3);
list.add("field");
list.add("baz");
list.add("fox");
new IndexRequest().source(XContentType.JSON, list));

然后,我发现它已经通过了编译器。但是我不知道该功能是否正确使用...

我可以使用 Object[] 代替 Object...

标签: java

解决方案


列表和数组是有区别的。最简单的方法是执行以下操作(将列表转换为数组,注意“toArray”方法):

List<String> list = new ArrayList(3);
list.add("field");
list.add("baz");
list.add("fox");
new IndexRequest().source(XContentType.JSON, list.toArray()));

推荐阅读