【问题标题】:What is the best way to send a method a dynamic number of variables? [duplicate]向方法发送动态数量的变量的最佳方法是什么? [复制]
【发布时间】:2023-03-12 06:38:01
【问题描述】:

我有一个 java 程序,它的方法可以始终接收不同数量的 int 值。发送ints 的最佳方式是什么?

【问题讨论】:

  • 你有没有尝试过?只需使用参数调用方法... methodName( 1,2,3,4,5,6,7,8 )
  • 我想要动态数量的参数
  • 您说您有一个采用动态长度参数集的方法...并询问您如何调用它。动态参数是这样你可以用任意数量的参数调用它,所以一次你可以用 1,2,3,4 调用它,另一次你可以用 3,5,2,1,43,5,3 调用它,32.

标签: java arrays int variadic-functions


【解决方案1】:

名为varargs(或任意数量的参数)的构造可以帮助您。

method(int... ints) { ... }

然后,可变参数将被编译器转换为int[]


好的,如何调用这些方法?

method(1, 2, 3);
method(new int[]{1, 2, 3});

关于cmets中的问题:

method(Arrays.stream(yourStringArray).mapToInt(Integer::parseInt).toArray());

您可以先将String[] 转换为int[],然后将结果传递给method

【讨论】:

  • 您认为这种方法比发送数组更好吗?我最初有一个包含整数的字符串数组,这些整数是我发送给方法的整数。
  • 使用可变参数是完美的,因为您可以将数组或许多带有逗号的参数传递给它。这是你的选择。
  • Arrays.stream(s).mapToInt(Integer::parseInt).toArray() 并通过int[]
【解决方案2】:

您可以执行以下操作,使用点符号来声明具有多个参数的方法

public TestClass 
{
  public void process(int... variables)
  {
    // process your variables,
   // Iterate through variables
  }
}

另外参考这个,Java multiple arguments dot notation - Varargs

【讨论】:

  • 谢谢,这叫什么? "..." 是运算符吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 2017-02-11
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
相关资源
最近更新 更多