/**
* 可变长的参数。
* 有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法:
* 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");
}
}

  

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

  1. go实例—函数或方法的可变长参数

    支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数. 需要注意的是,可变长参数应该是函数定义的最右边的参数,即最后一个参数 package ...

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

    function getQueryStringByName(name) { var result = location.search.match(new RegExp("[\?\&] ...

  3. java中可变长参数的定义及使用方法

    JAVA中可以为方法定义可变长参数( Varargs)来匹配不确定数量的多个参数,其定义用“...”表示.其实,这类似于为方法传了一个数组,且在使用方法上也和数组相同,如下: public void ...

  4. 0521Day03命名规范 Data函数 可变长参数 枚举类型

    [重点] 命名规范 枚举类型 Date函数 可变长参数 pirnt,println 命名规范 1. 驼峰命名法:main,username,setUsername 用于变量.方法的命名 2. Pasc ...

  5. gcc向待编译源文件传入参数的方法

    gcc有两种方法向待编译源文件传入参数 第一种 利用–Dmacro=name 编译选项,详见gcc -D选项 第二种 利用链接脚本(*.lds)传入参数,类似于ADS的编译器参数可以被待编译源文件调用 ...

  6. C#存储过程 传入参数 传出参数 结果集

    作者:卞功鑫 转载请保留:http://www.cnblogs.com/BinBinGo/p/6400928.html //1 连接字符串 string connectionString = &quo ...

  7. Java中可变长参数的方法

    原文转自:http://www.cnblogs.com/lanxuezaipiao/p/3190673.html 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定 ...

  8. C语言开发具有可变长参数的函数的方法

    学习交流可加 微信读者交流①群 (添加微信:coderAllen) 程序员技术QQ交流①群:736386324 --- 前提:ANSI C 为了提高可移植性, 通过头文件stdarg.h提供了一组方便 ...

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

    在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一.可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西. 先来看看应用场景,使用 ...

随机推荐

  1. Docker 选项和命令

    选项 -D=true|false 使用 debug 模式.默认为 false. -H, --host=[unix:///var/run/docker.sock]: tcp://[host:port]来 ...

  2. Nice是如何做iOS客户端架构的?

    一个创业产品的iOS客户端架构到底怎么做呢?现下最有活力的图片社交软件Nice的技术负责人刘诗彬将为我们解答创业产品如何实现iOS客户端架构. 分享人:刘诗彬,毕业于北京邮电大学电子信息科学与技术专业 ...

  3. WPF 之 利用Visibility属性进行Item模板切换

    前台Xaml如下: <Grid.Resources> <xx:AccountStatusToVisibility x:Key="AccountStatusToVisibil ...

  4. 【Android 界面效果29】研究一下Android滑屏的功能的原理,及scrollTo和scrollBy两个方法

    Android中的滑屏功能的原理是很值得我们去研究的,在知道这两个原理之前,有必要先说说View的两个重要方法,它们就是scrollTo 和scrollBy. Android View视图是没有边界的 ...

  5. 原来腾讯还出过一个开源项目libco

    虽然只能在OpenSUSE上使用,还是应该赞一个的.

  6. ionic使用sass

    sass 是一个css的预编译器,常见的预编译器有less,sass,stylus等,目前sass似乎更受青睐一些,bootstrap的最新版本以及ionic 都是用sass来构建页面效果的.这篇文章 ...

  7. [python] HDU自动登录提交代码程序

    调了一个下午,被python的正则绊住了:在C#上运作好好的式子在python老是报错,原来python的断言式必须是固定长度的,像类似(?<=[^>].*?)的零宽度正回顾后发断言是不允 ...

  8. Linux配置防火墙8080端口

    1.查看防火墙状态,哪些端口开放了 /etc/init.d/iptables status 2.配置防火墙 vi /etc/sysconfig/iptables ################### ...

  9. UWP源码——Unit Test

    之前我们讨论了涨姿势UWP的RSS数据源获取,以及作为文件存储到本地,再将数据转化成Model对象.这部分非UI的内容非常适合添加Unit Test.不涉及UI的话,UT写起来简单高效,很是值得投入一 ...

  10. win7开启远程桌面

    1.启用windows防火墙 计算机管理----->服务----->Windows Firewall(双击进入,启动类型改为自动,点击应用,点击启动)2.启动gpedit.msc打开“本地 ...