java - 对于 java var-args,是否可以确定传递给方法的数组是否是从 var-args 创建的?

标签 java arrays variadic-functions

例如,我有一个使用 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/

相关文章:

java - 识别语句/行中使用的变量

Java-特定线程结束后触发操作

javascript - 如何检查其他数组中存在的值,反之亦然

java:如何创建一个支持任意数量参数的函数?

Clojure : more than 1 variadic overload, 更惯用的做法?

c++ - va_arg 给出运行时错误

java - 如何访问在 main 方法中创建的对象

java - IntelliJ IDEA,urn :java? 的 xml namespace

javascript - 将对象拆分成 block

arrays - 追加到字典中的数组值