gpt4 book ai didi

Java自动将集合转换为参数数组?

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:25 24 4
gpt4 key购买 nike

我知道 Java "..."数组参数语法可以接收一个数组作为参数,或者只是传递给方法的许多参数。但是,我注意到它对 Collections 也是如此:

public static void main(String[] args) {
Collection<Object> objects = new ArrayList<>();
test(objects);
}

public static void test (Object...objects) {
System.out.println("no compile errors");
}

无需调用 toArray() 方法即可编译和运行。幕后发生了什么?这种语法是否有额外的“自动转换”方法?

顺便说一句,我使用的是 Java 1.7。

最佳答案

它不会将集合转换为数组。它将集合本身​​作为第一个 vararg 参数传递。测试方法因此接收一个包含一个元素的数组,这个元素就是 ArrayList。

这可以通过替换很容易找到

System.out.println("no compile errors");

通过

System.out.println(Arrays.toString(objects);

或者使用调试器。

关于Java自动将集合转换为参数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33461138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com