您的位置:

java可变参数,java可变参数和数组

本文目录一览:

Java中方法内的可变参数怎么使用

Java1.5增加了新特性:可变参数:

适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。

注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。

可变参数的特点:

(1)、只能出现在参数列表的最后;

(2)、...位于变量类型和变量名之间,前后有无空格都可以;

(3)、调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。

public class Varable {

 public static void main(String [] args){

  System.out.println(add(2,3));

  System.out.println(add(2,3,5));

 }

 public static int add(int x,int ...args){

  int sum=x;

  for(int i=0;iargs.length;i++){

   sum+=args[i];

  }

  return sum;

 }

}

java 可变参数 什么意思

可变参数就是当你调用这个方法的时候,可以传给它任意个参数

一半可变参数定义方法都是

prt(int...){

// 这个方法是可变参数的

}

关于Java可变参数问题?

你好,很高兴回答你的问题。

这就是java可变参数的传参方式,可以直接传一个符合参数数据类型的数组,也可以是用逗号分割的多个符合参数数据类型变量。

如果有帮助到你,请点击采纳。

...的Java中可变参数的符号

在编写一个方法时,其参数随着程序运行的条件而变化,在编译期间无法确定。具体地讲,例如编写一个打印参加聚会party的程序,其中方法printInvitation()将根据作为参数的参加人姓名,打印邀请卡。但这个参数的数量事先并不确定。当然可以编写许多重载的方法来解决这个问题,如:

void printInvitation(String name);

void printInvitation(String name1, Stringname2);

void printInvitation(String name1, Stringname2, String name3);

问题是编写多少个重载的方法才可以解决给所有参加者打印邀请卡?也许需要改变您的程序设计,而使用数组或者链接表了。

应用可变参数可以方便、灵活地解决这类问题。例如:

void printInvitation(String...names) {

for (String name : names) {

makeCard(name); //调用方法按照姓名打印邀请卡

System.out.println(Recording info: invitation card has been printed for + name);

}

}

这里,(String...names)便是可变参数。它包括从0到任意个相同类型的参数。在编译期间,这个可变参数将被转换为字符串数组形式,即:void printInvitation(String names).

如下是调用这个方法的例子:

printInvitation(李刚, David Smith);

printInvitation(Greg Wu, Paul Nguyen, Liu Wei, 张新);

printInvitation(); //无参数

当在无参数情况下调用这个方法时,将不执行任何这个方法中的代码。

如下是运行结果:

Recording info: invitation card has been printed for 李刚

Recording info: invitation card has been printed for David Smith

Recording info: invitation card has been printed for Greg Wu

Recording info: invitation card has been printed for Paul Nguyen

Recording info: invitation card has been printed for Liu Wei

Recording info: invitation card has been printed for 张新