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

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

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

    /** * 可变长的参数. * 有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法: * 1. 重载,多重载几个方法,尽可能的满足参数的个数.显然这不是什么好办法. ...

  2. 动态sql语句和动态传入参数个数

    1.可以将要传入的几个参数封装成一个实体类,然后将实体类作为一个参数传入到相应的方法中,这时候就需要这sqlMapper.xml文件中对传入的字段利用<if test=""& ...

  3. delphi7调用webservice Java 传入参数为空

    在delphi7中,new-webservices-wsdl importer中输入wsdl地址,会自动生成wsdl单元代码.在调用时,传入参数到服务器端时为空了. 网上说缺少 InvRegistry ...

  4. js函数定义参数个数和实际传入参数的对比

    因为js是一种弱类型的编程语言,对数据类型的要求没有其他编程语言的要求严格,所以在定义函数的时候不需要像java和C#一样对其传入参数的类型进行定义.那么传入参数的个数有没有影响呢?今天小猪就做了个实 ...

  5. Java 参数个数可变的函数

    示例: package my_package; public class Test { public static void main(String[] args) { out("重庆师范大 ...

  6. Java调用Python相关问题:指定python环境、传入参数、返回结果

    本篇文章涉及到的操作均在Windows系统下进行,Java调用python在原理上不难,但是可能在实际应用中会有各种各样的需求,网上其他的资料很不全,所以又总结了这篇文章,以供参考. 一.指定pyth ...

  7. JS中用apply、bind实现为函数或者类传入动态个数的参数

    为纪念10年没写blog,第一篇博文就以这样一个有趣的窍门开始吧 -___- 在ES5中,当我们调用一个函数时,如果要传入的参数是根据其他函数或条件判断生成的,也就是说不确定会传入多少个参数时,在不改 ...

  8. js调用函数时传入的参数个数与函数定义时的参数个数不符时的操作

    在js中函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最有一个有效,其他的函数声明都是无效的.比如说声明了两个函数fn(),第一次声明时没有形参,第二次声明时形参有两个 ...

  9. java中方法传入参数时:值传递还是址传递?

    JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...

随机推荐

  1. MySQL事务机制

    事务机制的特性通常被概括为"ACID原则" A(Atomic) 原子性: 构成一个事务的所有语句应该是一个独立的逻辑单元,要么全部执行成功, 要么一个都不成功, 你不能只执行他们当 ...

  2. 压缩html 减小存储空间

    压缩html 减小存储空间 方法一.php代码,清除换行符,清除制表符,去掉注释标记 /** * 压缩html : 清除换行符,清除制表符,去掉注释标记 * @param $string * @ret ...

  3. ubuntu下安装phpstudy环境记录

    下载一键安装包 下载地址:http://www.phpstudy.net/a.php/208.html 安装过程 开启终端 更改文件权限 chmod +x phpstudy 进行安装 ./phpstu ...

  4. iTerm2 颜色配置

    1. 首先找到配色文件: iterm2官网配色方案iTerm2-Color-Schemes altercation的  solarized配色方案solarized 2. 配置步骤: clone上面的 ...

  5. 为msysgit增加vim语法高亮文件

    在win7下装了msysgit,今天我遇到一个不爽的问题,打开git bash,用vim打开一个xml文件 结果都是黑屏的,没语法高亮,这个必须不能忍啊,我找到msysgit的安装目录,发现Vim73 ...

  6. phpcms v9 源码解析(4)content模块下的index.php文件的init()方法解析

    在了解index.php中的init函数的时候,让我们先看看最开始的几行代码 1-5  第二行, defined('IN_PHPCMS') or exit('Nopermission resource ...

  7. MongoDB Long/Int(长整型)的自增长主键 解决方案

    今朝有幸尝芒果,发现自增长ID类型有多种,唯独没有Long/Int. 一思路:1. 自建一个Collection(表,假设名为:IdentityEntity,其中字段:_id, Key, Value, ...

  8. Docs list

    http://www.deansys.com/doc/ldd3/index.html Github中文文档: http://www.worldhello.net/gotgithub/03-projec ...

  9. pipe/popen/fifo

    pipe(管道) 专用于父子进程通信, 函数原型 int pipe(int fd[2]) fd[0]表示输入, fd[1]表示输出 如果父子进程要双向通信, 可以通过类似信号的功能进行控制, 也可以简 ...

  10. 非阻塞io与记录锁

    非阻塞io 1.对比 阻塞io的例子:scanf从终端获取输入时,如果不输入程序就会一直停在那; 对一个已经有写锁的文件请求读时, 会一直空等直到前面的进程释放锁... 非阻塞的例子:读取文件内容, ...