Java变长参数应该注意的问题
2010-10-17 08:59
330 查看
从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!
本文出自 “有思想的代码” 博客,请务必保留此出处http://wujuxiang.blog.51cto.com/2250829/406801
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!
本文出自 “有思想的代码” 博客,请务必保留此出处http://wujuxiang.blog.51cto.com/2250829/406801
相关文章推荐
- Java和jsp编程中应该注意的几个常见问题
- 【javaweb:事务控制】事务控制两个方法在插入存在主从表关系的数据时应该注意的顺序问题!
- Java开发向导页时应该注意的一个问题
- Java和jsp编程中应该注意的几个常见问题
- Java和jsp编程中应该注意的几个常见问题
- 引用类型参数应该注意的一点问题
- java在使用实现了List接口时候应该注意的问题
- java编码应该注意的问题
- java在使用实现了List接口时候应该注意的问题
- Java可变参数方法重载时要注意的几个问题
- Java和JSP编程应该注意的六个常见问题
- java split函数应该注意的问题
- 作为一名java程序员,你应该注意避免哪些问题?
- Java的编程应该注意的问题
- Java Thread 应该注意的一些问题
- java和jsp编程应该注意的六个常见问题
- IT form整理 java应该注意的问题3(异常+多线程)
- Java Thread应该注意的问题
- java异常代码编写应该注意的问题
- java默认的无参构造方法中应该注意的问题。