【问题标题】:Using unspecified number of arguments in another method在另一个方法中使用未指定数量的参数
【发布时间】:2014-07-27 01:58:19
【问题描述】:

抱歉,如果没有示例,我无法正确表达这个问题。说oneMethod有这样一个签名:

void oneMethod(String... strings);

我打电话给oneMethod

void callOneMethod(int numStrings) {
    oneMethod("s" + 0, "s" + 1, ..., "s" + (numStrings - 1));
}

我应该如何写我的callOneMethod

另外,如果有人能帮助更好地改写这个问题,我非常感谢:)

【问题讨论】:

标签: java method-call


【解决方案1】:

strings 参数与数组参数非常相似。因此你可以创建一个数组传递给oneMethod

void callOneMethod(int numStrings) {
    String[] a = new String[numStrings];
    for (int i = 0; i < numStrings; i++) {
        a[i] = "s" + i;
    }
    oneMethod(a);
}

澄清

当然仍然使用你的oneMethod(String... strings) 方法。

【讨论】:

  • 感谢您的回答。但是,我同时将所有numStrings 字符串数传递给oneMethod。那么oneMethod 接受的参数是在运行时决定的......
  • @goldfrapp04 这个答案是正确的。这允许您传递任何数量的参数。有什么问题?
  • 哦!好的,我想我没有清楚地理解可变参数。所以本质上它将参数视为一个数组?
  • @goldfrapp04:在带有可变参数参数的方法中形成表单,您将其视为数组。调用该方法时,您可以传递一个数组(如在我的代码片段中)或任意数量的具有正确类型的参数(例如oneMethod("a", "b", "c"))。
猜你喜欢
  • 2018-02-04
  • 2016-01-03
  • 2016-01-25
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2022-01-22
相关资源
最近更新 更多