例如,我有一个使用 var-args 的方法:
void doSomething(int... args);
我可以有两种不同的用法:
// 1) using an array
int[] data = new int[] {1, 2};
doSomething(data);
// 2) using a sequence of arguments
doSomething(1, 2);
假设方法 doSomething() 需要确保传递的数组从外部“不可变”,它将复制该数组。但是,如果调用者传递了一系列参数,则方法外部不会引用该数组,因此我们可以避免数组复制的成本。
是否可以确定它在运行时是如何调用的?
最佳答案
没有。据我所知,无法确定调用者是通过哪种方式调用该方法的,只能确定该方法被调用了。
关于java - 对于 java var-args,是否可以确定传递给方法的数组是否是从 var-args 创建的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341449/