【问题标题】:How to pass an arbitrary number of the same type arguments to a method using varargs?如何使用可变参数将任意数量的相同类型参数传递给方法?
【发布时间】:2021-09-05 08:59:28
【问题描述】:

这些参数由类型后面的三个点指定。但我不知道方法中...是什么意思

public static void printNumberOfArguments(int... numbers) {
    System.out.println(numbers.length);
}

以及在文档中

public static void method(long.. vararg) { /* do something */ }

这是错误的,我不知道为什么?

【问题讨论】:

  • “这是错误的,我不知道为什么?” 主要是因为你使用了两个点而不是三个点。
  • 点表示:任意数量,作为单独的参数传递,例如printNumberOfArguments(5, 6, 6, 7)

标签: java arrays parameter-passing


【解决方案1】:

可以使用名为 varargs(可变长度参数)的特殊语法将任意数量的相同类型的参数传递给方法。这些参数由类型后面的三个点指定。在方法体中,可以将此参数作为指定类型的常规数组处理。

您的方法采用整数可变参数,并使用数组的长度属性在标准输出中输出参数的数量。

... 是这里用来指定可变参数的特殊语法。

我正在尝试为您提供两种类型或在 java 中的方法中传递可变参数:

错误示例:

public static void method(double... varargs, int a) { /* do something */ }

该方法的正确版本是:

public static void method(int a, double... varargs) { /* do something */ }

【讨论】:

  • 非常感谢我明白了感谢您的解释
  • 很高兴为您提供帮助:)
【解决方案2】:

可变长度参数由三个句点指定()。

您可以调用传递多个整数或整数数组的方法。这些示例将帮助您理解这一点:

printNumberOfArguments(1);
printNumberOfArguments(1, 2);
printNumberOfArguments(1, 2, 3);
printNumberOfArguments(new int[] { }); // no arguments here
printNumberOfArguments(new int[] { 1, 2 });

此代码输出:

1
2
3
0
2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 2017-12-18
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多