当前位置: 首页 > 编程笔记 >

java中的可变参数使用方法

钱远
2023-03-14
本文向大家介绍java中的可变参数使用方法,包括了java中的可变参数使用方法的使用技巧和注意事项,需要的朋友参考一下

java中的可变参数使用方法

可变参数时Java 1.5新增的方法,可变参数方法接收0个或者多个指定类型的参数,可变参数机制通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法。如:

public class Test{
  public int sum(int... args) {
    int sum = 0;
    for (int arg : args) {
      sum += arg;
    }
    return sum;
  }
}

 可变参数提供了方便,但是使用可变参数时需要特别小心,可变参数方法的每次调用都会导致进行一次数组的分配和初始化,如果方法被多次调用对性能的影响会很大,但有一种方式可以适当的解除这种问题。假设确定对某个方法95%的调用会有3个或者更少的参数,就申明该方法的5个重载每个重载方法带有0至3个普通参数,当参数的数目超过3个时,就使用一个可变参数方法:

public class Test{
  public void method(){}
  public void method(int a1){}
  public void method(int a1, int a2){}
  public void method(int a1, int a2, int a3){}
  public void method(int a1, int a2, int a3, int... args){}
}
 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 在具体实际开发过程中,有时方法中参数的个数是不确定的。为了解决这个问题,在 J2SE 5.0 版本中引入了可变参数的概念。 声明可变参数的语法格式如下: 其中,methodName 表示方法名称;paramList 表示方法的固定参数列表;paramType 表示可变参数的类型;… 是声明可变参数的标识;paramName 表示可变参数名称。 注意:可变参数必须定义在参数列表的最后。 例 1 每次

  • 问题内容: 如何在不创建其他变量的情况下处理此错误? 我不想创建其他变量只是为了存储x的值。有可能做我想做的事吗? 问题答案: 如其他答案所述,从Swift 3开始,将var放在不推荐使用的变量之前。尽管没有在其他答案中说明,但是可以声明参数。思考:传递一个指针。 这在递归中特别有用。 苹果的声明指南可以在这里找到。

  • 问题内容: 我正在尝试使用java反射调用带有可变参数的方法。这是托管方法的类: 这是调用代码: 我在调用invoke的最后一行以“错误数量的参数” 的形式获取IllegalArgumentException 。不知道我在做什么 错。 任何指针将不胜感激。 谢谢 问题答案: public class Test { 为我工作。 将您的N []投射到对象 在实例上调用,而不在类上调用

  • 看这个问题:如何在Java8中动态做过滤? 问题是在执行过滤器后截断流。我不能使用限制,因为我不知道过滤后的列表有多长。那么,我们可以计算过滤后的元素数吗? 所以,我想我可以创建一个类,计算并通过地图传递流。代码在这个答案中。 我创建了一个可计数的类,但保持元素不变,我在这里使用了一个函数,以避免使用我在另一个答案中使用的lambdas: 所以我的流最终是: 但我的问题是关于我的例子的另一部分。

  • 本文向大家介绍关于java中可变长参数的定义及使用方法详解,包括了关于java中可变长参数的定义及使用方法详解的使用技巧和注意事项,需要的朋友参考一下 JAVA中可以为方法定义可变长参数( Varargs)来匹配不确定数量的多个参数,其定义用“...”表示。其实,这类似于为方法传了一个数组,且在使用方法上也和数组相同,如下: 调用方法就像普通的调用方式相同,只不过可以匹配的参数为0到多个。如下:

  • 我正在尝试将一个参数传递给包含在主jsp中的jsp文件。从我在网上看到的使用c:set 虽然当我尝试使用包含的jsp页面中的变量时,似乎只有一个参数通过(第二个没有使用c: set) 没有崩溃,但我可以看到myArg01为空