从Java SDK 5开始,Java就支持了变长参数,但是在使用时应该注意如下问题:

1、变长参数只能放在最后。

2、如果出现重载情况,应该注意模糊性。

例如:

class VarArgs {

static void vaTest(int ...v){
     System.out.print("vaTest(int ...):Number of args:"+v.length+"Contents");

for(int x : v){
       System.out.print(x+" ");
     }
     System.out.println();
   }

static void vaTest(boolean ...v){
     System.out.print("vaTest(int ...):Number of args:"+v.length+"Contents");

for(boolean x : v){
       System.out.print(x+" ");
     }
     System.out.println();
   }

static void vaTest(String msg,int ...v){
     System.out.print("vaTest(int ...):Number of args:"+v.length+"Contents");

for(int x : v){
       System.out.print(x+" ");
     }
     System.out.println();
   }
 
}

这种情况下是不会出现异常的,但是下面的情况就会出现编译时错误了:

class VarArgs4 {

static void vaTest(int ...v){
     System.out.print("vaTest(int ...):Number of args:"+v.length+"Contents");

for(int x : v){
       System.out.print(x+" ");
     }
     System.out.println();
  }

static void vaTest(boolean ...v){
   System.out.print("vaTest(int ...):Number of args:"+v.length+"Contents");

forboolean x : v){
       System.out.print(x+" ");
     }
     System.out.println();
  }
 
}

对于varArgs4的重载是完全正确的,但是去编译不通过:
vaTest();//Error:Ambiguous!

转载于:https://blog.51cto.com/wujuxiang/406801

Java变长参数应该注意的问题相关推荐

  1. java 变长参数 知乎_变长参数探究

    前言 变长参数,指的是函数参数数量可变,或者说函数接受参数的数量可以不固定.实际上,我们最开始学C语言的时候,就用到了这样的函数:printf,它接受任意数量的参数,向终端格式化输出字符串.本文就来探 ...

  2. java变长参数_Java可变长度参数

    术语"varargs"是"variable-length arguments"(可变长度参数)的缩写. 可变长度参数声明一个接受可变数量的参数(或参数)的方法或 ...

  3. java代码编写出现的陷阱-1:警惕变长参数

    在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,调用的时候可以给出任意多个参数也可不给参数. 如method(Ob ...

  4. Spark UDF变长参数的二三事儿

    在复杂业务逻辑中,我们经常会用到Spark的UDF,当一个UDF需要传入多列的内容并进行处理时,UDF的传参该怎么做呢? 下面通过变长参数引出,逐一介绍三种可行方法以及一些不可行的尝试... 引子 变 ...

  5. 关于c++变长参数列表总结

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面 在C++语言中,有两个三个(???)地方用到了"..."这个符号,分别是: 变长参数列表.下面用 ...

  6. c语言 宏 变长参数,科学网—C/C++中处理变长参数函数(Variadic Function)的几个宏 - 彭彬的博文...

    近日在模式中进行非线性方程组求解时遇到变长参数函数的问题,以前从来没有自己写过变长参数的函数,于是补了一下课,将近日对该小问题的学习和理解整理如下. 一.变长参数函数(variadic functio ...

  7. c/c++十七: 变长参数

    #include"c1.h" #include<stdarg.h> typedef int ElemType;ElemType Max(int num,...){ // ...

  8. *args and **kwargs in Python 变长参数

    原文链接 变长参数 args(非关键字参数) def myFun(*argv): for arg in argv: print (arg)myFun('Hello', 'Welcome', 'to', ...

  9. matlab 变长参数,变长参数函数的概念

    分享一个2015年华为笔试知识点:变长参数函数 变长参数的函数即参数个数可变.参数类型不定 的函数. 设计一个参数个数可变.参数类型不定的函数是可能的,最常见的例子是printf函数.scanf函数和 ...

最新文章

  1. Web性能压力测试工具——Siege详解
  2. linux 共享内存 查看和删除
  3. Idea新建项目默认是JDK1.5解决办法
  4. Auto_ml与TPOT的区别
  5. (原创)INTERVAL分区表与RANGE分区表相互转化
  6. C#中读取带有Xmlns命名空间的XML文件
  7. mysql 随机选取一条记录
  8. Python 3 与 Javascript escape 传输确保数据正确方法和中文乱码解决方案
  9. winform中ShowInTaskbar设为false时,注册的热键失效的问题解决
  10. MS Office 冷门却实用的技巧及软件安装包分享(文末有福利)
  11. 程序员培训去哪里?哪里学习程序员
  12. yii mysql gii_Yii 框架使用Gii生成代码操作示例
  13. “存算”协同,让存储发挥极致性能
  14. 提高Python效率的方法 混合编程向
  15. 内核编译时出现 ERROR: modpost: “some_function” [xxx.ko] undefined!
  16. from keras.preprocessing.sequence import pad_sequences 标红
  17. 数学实验——函数绘图实验
  18. ThreadPoolExecutor线程池的使用
  19. CSDN的博客怎么了?
  20. python linux下载磁力链_Python爬取80s网电影名称及迅雷(磁力)链接

热门文章

  1. Metasploit命令info使用技巧
  2. 网站截图工具EyeWitness
  3. 密码嗅探工具dsniff
  4. 命令注入工具Commix
  5. java文件用editplus乱码,EditPlus设置编码后,编译时仍然出现乱码
  6. mysql ndb 测试_.部署MYSQL集群 --测试
  7. 编译安装_在Centos7下编译安装新版本内核
  8. 计算机二级公共基础知识2017,2017年计算机二级公共基础知识基础试题
  9. og-bin=mysql-bin_init_connect + binlog 记录 mysql 操作日志
  10. 两圆重叠问题你会求解吗?这个问题的准确答案,德国数学家最近才找到