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变长参数应该注意的问题相关推荐
- java 变长参数 知乎_变长参数探究
前言 变长参数,指的是函数参数数量可变,或者说函数接受参数的数量可以不固定.实际上,我们最开始学C语言的时候,就用到了这样的函数:printf,它接受任意数量的参数,向终端格式化输出字符串.本文就来探 ...
- java变长参数_Java可变长度参数
术语"varargs"是"variable-length arguments"(可变长度参数)的缩写. 可变长度参数声明一个接受可变数量的参数(或参数)的方法或 ...
- java代码编写出现的陷阱-1:警惕变长参数
在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,调用的时候可以给出任意多个参数也可不给参数. 如method(Ob ...
- Spark UDF变长参数的二三事儿
在复杂业务逻辑中,我们经常会用到Spark的UDF,当一个UDF需要传入多列的内容并进行处理时,UDF的传参该怎么做呢? 下面通过变长参数引出,逐一介绍三种可行方法以及一些不可行的尝试... 引子 变 ...
- 关于c++变长参数列表总结
2019独角兽企业重金招聘Python工程师标准>>> 写在前面 在C++语言中,有两个三个(???)地方用到了"..."这个符号,分别是: 变长参数列表.下面用 ...
- c语言 宏 变长参数,科学网—C/C++中处理变长参数函数(Variadic Function)的几个宏 - 彭彬的博文...
近日在模式中进行非线性方程组求解时遇到变长参数函数的问题,以前从来没有自己写过变长参数的函数,于是补了一下课,将近日对该小问题的学习和理解整理如下. 一.变长参数函数(variadic functio ...
- c/c++十七: 变长参数
#include"c1.h" #include<stdarg.h> typedef int ElemType;ElemType Max(int num,...){ // ...
- *args and **kwargs in Python 变长参数
原文链接 变长参数 args(非关键字参数) def myFun(*argv): for arg in argv: print (arg)myFun('Hello', 'Welcome', 'to', ...
- matlab 变长参数,变长参数函数的概念
分享一个2015年华为笔试知识点:变长参数函数 变长参数的函数即参数个数可变.参数类型不定 的函数. 设计一个参数个数可变.参数类型不定的函数是可能的,最常见的例子是printf函数.scanf函数和 ...
最新文章
- Web性能压力测试工具——Siege详解
- linux 共享内存 查看和删除
- Idea新建项目默认是JDK1.5解决办法
- Auto_ml与TPOT的区别
- (原创)INTERVAL分区表与RANGE分区表相互转化
- C#中读取带有Xmlns命名空间的XML文件
- mysql 随机选取一条记录
- Python 3 与 Javascript escape 传输确保数据正确方法和中文乱码解决方案
- winform中ShowInTaskbar设为false时,注册的热键失效的问题解决
- MS Office 冷门却实用的技巧及软件安装包分享(文末有福利)
- 程序员培训去哪里?哪里学习程序员
- yii mysql gii_Yii 框架使用Gii生成代码操作示例
- “存算”协同,让存储发挥极致性能
- 提高Python效率的方法 混合编程向
- 内核编译时出现 ERROR: modpost: “some_function” [xxx.ko] undefined!
- from keras.preprocessing.sequence import pad_sequences 标红
- 数学实验——函数绘图实验
- ThreadPoolExecutor线程池的使用
- CSDN的博客怎么了?
- python linux下载磁力链_Python爬取80s网电影名称及迅雷(磁力)链接
热门文章
- Metasploit命令info使用技巧
- 网站截图工具EyeWitness
- 密码嗅探工具dsniff
- 命令注入工具Commix
- java文件用editplus乱码,EditPlus设置编码后,编译时仍然出现乱码
- mysql ndb 测试_.部署MYSQL集群 --测试
- 编译安装_在Centos7下编译安装新版本内核
- 计算机二级公共基础知识2017,2017年计算机二级公共基础知识基础试题
- og-bin=mysql-bin_init_connect + binlog 记录 mysql 操作日志
- 两圆重叠问题你会求解吗?这个问题的准确答案,德国数学家最近才找到