方法的可变长参数 传入参数个数不确定可用(Type ... values)

/**
 * 可变长的参数。
 * 有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法:
 * 1.  重载,多重载几个方法,尽可能的满足参数的个数。显然这不是什么好办法。
 * 2.  将参数作为一个数组传入。虽然这样我们只需一个方法即可,但是,
 * 为了传递这个数组,我们需要先声明一个数组,然后将参数一个一个加到数组中。
 * 现在,我们可以使用可变长参数解决这个问题,
 * 也就是使用...将参数声明成可变长参数。显然,可变长参数必须是最后一个参数。
 */
public class VarArgs {

	/**
	 * 打印消息,消息数量可以任意多
	 * @param debug	是否debug模式
	 * @param msgs	待打印的消息
	 */
	public static void printMsg(boolean debug, String ... msgs){
		if (debug){
			// 打印消息的长度
			System.out.println("DEBUG: 待打印消息的个数为" + msgs.length);
		}
		for (String s : msgs){
			System.out.println(s);
		}
		if (debug){
			// 打印消息的长度
			System.out.println("DEBUG: 打印消息结束");
		}
	}
	/**
	 * 重载printMsg方法,将第一个参数类型该为int
	 * @param debugMode 是否debug模式
	 * @param msgs	待打印的消息
	 */
	public static void printMsg(int debugMode, String ... msgs){
		if (debugMode != 0){
			// 打印消息的长度
			System.out.println("DEBUG: 待打印消息的个数为" + msgs.length);
		}
		for (String s : msgs){
			System.out.println(s);
		}
		if (debugMode != 0){
			// 打印消息的长度
			System.out.println("DEBUG: 打印消息结束");
		}
	}

	public static void main(String[] args) {
		// 调用printMsg(boolean debug, String ... msgs)方法
		VarArgs.printMsg(true);
		VarArgs.printMsg(false, "第一条消息", "这是第二条");
		VarArgs.printMsg(true, "第一条", "第二条", "这是第三条");

		// 调用printMsg(int debugMode, String ... msgs)方法
		VarArgs.printMsg(1, "The first message", "The second message");
	}
}

  

时间: 2024-11-05 22:53:21

方法的可变长参数 传入参数个数不确定可用(Type ... values)的相关文章

JS 获取 路径参数 传入 参数名 截取 & 和 # 之前 字符

function getQueryStringByName(name) { var result = location.search.match(new RegExp("[\?\&]" + name + "=([^\&]+)", "i")); if (result == null || result.length < 1) { return ""; } return result[1]; }

可变长参数的函数的写法

c语言中的可变长参数的函数小例子: #include <stdio.h> #include <stdarg.h> #include <assert.h> static int pp; void func1() { static int pp1; printf("hello world\n"); } void tiny_printf(char *format, ...) { int i; va_list ap; va_start(ap, format)

Java方法的可变参数个数

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

javascript arguments解释,实现可变长参数。

在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一.可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西. 先来看看应用场景,使用arguments传入任意个数的参数到js函数里的写法. function Test() { console.log(arguments[0]); console.log(arguments[1]); console.log(arguments[2]); }; Test(1, 2, 3); 输出 1

可变长参数

目录 可变长形参之*(掌握) 可变长实参之*(掌握) 可变长形参之**(掌握) 可变长实参之**(掌握) 可变长参数应用(掌握) 命名关键字形参(了解) 可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(*)与关键字实参(**) 可变长形参之*(掌握) 形参中的*会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给*后的参数.需要注意的是:*后的参

Java中可变长参数的使用及注意事项

在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print("hello");print("hello","lisi");print("hello","张三", "alexia");下面介绍如何定义可变长参数 以及如何使用可变长参数. 1. 可变长参数的定义 使用...表示可变长参数,例如 prin

C语言可变长参数实现原理

博客:存储系统研究 微博:http://weibo.com/u/2203007022             (1)      C语言可变参数 我们可以从C语言的printf得出可变参数的作用,printf函数的原型如下: int printf ( const char * format, ... ); 通过使用可变个数参数,就是传入的参数个数是可变的,如printf需要根据format实参传入多个实参. (2)      C语言可变参数的使用 下面一个函数myprintf是自己实现的比较简单的

深度探索C语言函数可变长参数

通常我们使用的C函数的参数个数都是固定的,但也有不固定的.比如printf()与scanf().如何自己动手实现一个可变参数函数,这个还是有点技巧的. 我们最常用的就是定义一个宏,使用printf或者printk,如下 #define wwlogk(fmt, args...) printk(fmt, ## args) 现在我们自己动手实现一个可变参数的函数,后面分析原理.首先看一个例子: #include <stdio.h> #include <stdarg.h> int Sum(

ZMAN的学习笔记之Python篇:函数可变长参数

ZMAN的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 这次来聊聊Python中函数的“可变长参数”,在实际中经常会用到哦~  一.什么是“可变长参数” “可变长参数”就是向一个函数传入不定个数的参数.比如我写一个函数:传入一个学生参加各科目考试的成绩,求平均分,如两个学生分别传入(92, 91, 88)和(88, 95),因为每个学生参加的考试个数不同,因此传入的参数个数也就不同了,遇到这种情况,我们在定义函数的时候,可以使用“可变长参数”. 二.在定义函数时使用“可变长参数