Java中的可变参数

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。

特点:

1.只能出现在参数列表最后;

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

3.调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,

在方法体中以数组的形式访问可变参数

程序举例说明:

public class Test {
	//求传入参数的和的方法
	public void add(int x,int...arr)//可变参数
	{
		int sum=x;//先把第一个参数的值复制给sum
		for(int i=0;i<arr.length;++i)
		{
			sum+=arr[i];
		}
		System.out.println(sum);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test tt = new Test();
		tt.add(2);//和为2,可变参数长度可以为0个
		tt.add(2,3);//和为5
		tt.add(2,3,4,5);//和为14
		tt.add(2,3,4,5,6,7);
	}

}
时间: 2024-12-28 18:11:26

Java中的可变参数的相关文章

Java中的可变参数以及foreach语句

Java中的可变参数的定义格式如下: 返回值类型  方法名称(类型 ... 参数名称){} foreach语句的格式如下: for ( 数据类型  变量名称 :数据名称){ ... } public class NewDemo01 { public static void main(String[] args) { // TODO Auto-generated method stub fun(); fun(1); fun(1,2,3,4); } public static void fun(in

Java基础:可变参数(Varagrs)的使用注意事项

因为在先前学习java的过程中,有涉及到可变参数,但没有太深入的去学习.所以最近自己找了些相关资料,想加深了解.下面就是学习整理后的内容了. 在JDK1.5后,定义方法时,可以使用同类型个数不确定的参数. 使用可变参数定义方法时,方法实际上是把这些不确定数目的参数隐式地都装进一个数组中, 然后方法再从这个数组中取出元素来使用. 也就是说,方法使用可变参数,和JDK1.4中方法使用数组参数时的处理方式是一样的,都是取出数组元素来使用. 一.定义方法: 返回值 方法名(参数类型...可变参数名) 1

C,C++中使用可变参数

可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等.可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种写个重载).在C#中有专门的关键字parame,但在C,C++并没有类似的语法,不过幸好提供这方面的处理函数,本文将重点介绍如何使用这些函数. 第一步 可变参数表示 用三个点-来表示,查看printf()函数和scanf

C/C++函数中使用可变参数

先说明可变参数是什么,先回顾一下C++里面的函数重载,如果重复给出如下声明: 1 int func(); 2 int func(int); 3 int func(float); 4 int func(int, int); 5 ... 这样在调用相同的函数名 func 的时候,编译器会自动识别入参列表的格式,从而调用相对应的函数体. 但这样的方法毕竟有限,试想一下我们假如想定义一个函数,我们在调用之前(在运行期之前)根本不知道我到底要调用几个参数,并且不知道这些参数是个什么类型,例如我们想定义一个

python中的可变参数

def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1, None, a=1, b='2', c=3) 输出结果如下:arg

C# 中的可变参数方法(VarArgs)

首先需要明确一点:这里提到的可变参数方法,指的是具有 CallingConventions.VarArgs 调用约定的方法,而不是包含 params 参数的方法.可以通过MethodBase.CallingConvention 属性来获取某个方法的调用约定. 举个常见的例子来说,C 语言的 printf 方法大多数人应该都知道,它的作用是向标准输出流(stdout)写入格式化字符串,printf 的方法签名是: int printf(const char * format, ...); 方法签名

【转】C,C++中使用可变参数

可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等.可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种写个重载).在C#中有专门的关键字parame,但在C,C++并没有类似的语法,不过幸好提供这方面的处理函数,本文将重点介绍如何使用这些函数. 第一步 可变参数表示 用三个点…来表示,查看printf()函数和scanf

Java方法的可变参数个数

什么是可变参数 可变参数,具体来说是, 1.传递参数的时候可以传递0个.1个.2个--n个. 2.也可以传递一个数组. 3.可变参数,必须是方法的最后一个参数. 示例 //业务逻辑类 /** * 根据 Workplandetailid获取任务对象 * * @param detailId * @return */ public Taskinfo findByWorkplandetailid(String detailId) throws Exception { StringBuffer strbu

iOS 处理方法中的可变参数

## iOS 处理方法中的可变参数 最近写了一个自定义的对话框的demo,想模仿系统的UIAlertView的实现方式,对处理可变参数的时候,遇到了小问题,于是谷歌了一下,写下了处理问题的方法,记录下来,以备后需. 代码实现 - (instancetype)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelBut