1. /**
  2. * 可变长的参数。
  3. * 有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法:
  4. * 1. 重载,多重载几个方法,尽可能的满足参数的个数。显然这不是什么好办法。
  5. * 2. 将参数作为一个数组传入。虽然这样我们只需一个方法即可,但是,
  6. * 为了传递这个数组,我们需要先声明一个数组,然后将参数一个一个加到数组中。
  7. * 现在,我们可以使用可变长参数解决这个问题,
  8. * 也就是使用...将参数声明成可变长参数。显然,可变长参数必须是最后一个参数。
  9. */
  10. public class VarArgs {
  11.  
  12. /**
  13. * 打印消息,消息数量可以任意多
  14. * @param debug 是否debug模式
  15. * @param msgs 待打印的消息
  16. */
  17. public static void printMsg(boolean debug, String ... msgs){
  18. if (debug){
  19. // 打印消息的长度
  20. System.out.println("DEBUG: 待打印消息的个数为" + msgs.length);
  21. }
  22. for (String s : msgs){
  23. System.out.println(s);
  24. }
  25. if (debug){
  26. // 打印消息的长度
  27. System.out.println("DEBUG: 打印消息结束");
  28. }
  29. }
  30. /**
  31. * 重载printMsg方法,将第一个参数类型该为int
  32. * @param debugMode 是否debug模式
  33. * @param msgs 待打印的消息
  34. */
  35. public static void printMsg(int debugMode, String ... msgs){
  36. if (debugMode != 0){
  37. // 打印消息的长度
  38. System.out.println("DEBUG: 待打印消息的个数为" + msgs.length);
  39. }
  40. for (String s : msgs){
  41. System.out.println(s);
  42. }
  43. if (debugMode != 0){
  44. // 打印消息的长度
  45. System.out.println("DEBUG: 打印消息结束");
  46. }
  47. }
  48.  
  49. public static void main(String[] args) {
  50. // 调用printMsg(boolean debug, String ... msgs)方法
  51. VarArgs.printMsg(true);
  52. VarArgs.printMsg(false, "第一条消息", "这是第二条");
  53. VarArgs.printMsg(true, "第一条", "第二条", "这是第三条");
  54.  
  55. // 调用printMsg(int debugMode, String ... msgs)方法
  56. VarArgs.printMsg(1, "The first message", "The second message");
  57. }
  58. }

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. hadoop2.2.0伪分布式搭建

    1.准备Linux环境     1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ...

  2. Android开发面试题(一)

    1.String和StringBuffer有什么本质区别? 本质区别:String字符串不可变,每次修改字符串必须要重新赋值(生成新的对象)才能修改:StringBuffer字符串可变,可以直接对字符 ...

  3. [转]Android在eclipse中的快捷键

    1.选中你要加注释的区域,用ctrl+shift+C 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上/*    */注释3.要修改在eclispe中的命令的快捷键方式我们只 ...

  4. Java IO流详尽解析

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  5. dedecms 分页样式

    <div class="dede_pages">  <ul class="pagelist">   {dede:pagelist lis ...

  6. php session偶尔写入失败的原因

    session_start(); var_dump($_SESSION); $key = sprintf('%05d', mt_rand(0, 99999)); $key = strval($key) ...

  7. URL锚点HTML定位技术机制

    一.锚点是什么 锚点就等同于火影中的“飞雷神之术”,我们先看百科中锚点的解释: 使用命名锚记可以在文档中设置标记,这些标记通常放在文档的特定主题处或顶部.然后可以创建到这些命名锚记的链接,这些链接可快 ...

  8. IEEE802是一个局域网标准系列

    视频教程 http://v.youku.com/v_show/id_XNjgyODA0NzE2.html?from=s1.8-1-1.2 干线 总线+环形网的传递机制 环形令牌总线 802.4 

  9. owin 中间件 katana 如何解密cookie

    .NET MVC5 默认的用户登录组件是AspNet.Identity ,支持owin,并且微软自己实现的一套owin 中间件叫 katana 补充一下 katana项目源码地址:https://ka ...

  10. 指向const的指针和const指针

    1.指向const的指针:const int *p 或 int const *p 解释:p是一个指针,指向const int类型的常量:指针指向的内容为常量,因此不能改变*p的值,但指针p可以改变,指 ...