这个问题在这里已经有答案了:
如何将arraylist传递给varargs方法参数(5个答案)
5个月前关门了。
我有一个方法如下:
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。。。
2条答案
按热度按时间jogvjijk1#
列表和数组是有区别的。最简单的方法是执行以下操作(使用“toarray”方法将列表转换为数组):
i7uq4tfw2#
在上面的片段中,
Object... source
引用一个对象数组,但肯定也会接受单个对象,这是因为在内部,jvm会将该对象添加到数组中。在类似的行中,当您将一个列表传递给该方法时,它会将该列表放入一个名为
source
,因此编译器没有抛出错误。