java - 使用数组中的参数进行 Vararg 初始化 (Java)

标签 java arrays parameters variadic-functions

Antescript:我知道之前有一个 SO 问题,其标题听起来像是指的是完全相同的问题。它没有。

无论如何,这个问题有点奇怪 - 有很多更好的方法可以解决这里的问题,但我很好奇如何解决我的特殊困境。

假设我有一个使用 varargs 的方法来接受任意数量的元素,可能是 Integer 类型。如果我有一个任意长度的整数数组,有没有办法使用由所述数组的每个元素组成的以逗号分隔的参数列表来调用我的方法?

这是一个简短的人为示例:

Integer[] paramList = new Integer {1, 2, 3};
varMethod(paramList[0], paramList[1], paramList[2]);
// varMethod({{for (param : paramList) {param;}}});

public void varMethod(Integer...values) {
    for (Integer value : values) {
        foo(value);
    }
}

注释掉的那行暗示了我想做什么。由于 paramList 整数是任意长度,调用 varMethod 明确请求的每个元素(第 2 行)将不起作用。我想知道是否有一种方法可以从数组的元素动态生成以逗号分隔的参数列表。

同样,我意识到在这样的示例中,有更好的方法来解决整个问题,但请注意,我已经简化了代码,因此它只与我们在这里讨论的特定问题相关。解决我发布的代码的任何解决方法都不会概括为我真正正在研究的问题,这导致我首先提出了这个问题。

最佳答案

我想你只是在寻找:

varMethod(paramList);

也许您没有意识到 Integer... 是普通 Integer[] 数组的特殊变体。因此,由于 paramList 已经是一个 Integer[] 数组,您可以直接将它传递给方法。

关于java - 使用数组中的参数进行 Vararg 初始化 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158485/

相关文章:

java - 检查 RMI 连接的更好方法

java - 如何在数组字符串中搜索非字母字符?

C 最小函数总是返回 2686916

php - 如何在php mysql中相对于列插入csv数组数据

ruby-on-rails - rails : how to use database bindings in where

java - IOException 没有提供足够的信息

java - 通过 JSTL 访问列表时出现异常

ruby-on-rails - 如何使 check_box_tag 在未选中时发布 'false' 或 '0' 参数?

java - JTextPane 在上一行之后打印文本

java - 具有许多参数的枚举