JDK1.5新特性之可变数目参数学习
程序员文章站
2022-06-04 23:02:10
...
总是忘记jdk1.5新特性,总之有好多,写一遍文章来帮助自己记忆,因为在面试过程中会问到。
**先说一下jdk1.5新特性:**
1)泛型
2)自动拆装箱
3)for循环
4)可变数目参数
5)支持注解
还有很多就不一一说出来,知道这样就可以了。因为自己一直不知道可变数目参数这一特性,所以今天抽时间来学习一下,也是通过百度的,首先说一下可变数目参数适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理 。
注意事项:
1)不定项参数必须放在参数列表最后一个。
例:
public void method(int...args, int i) //编译错误,因为前面不定项,系统不可以判断i是哪一个
2)不定项参数只能有一个(多个,必然有一个不是最后一个)。
例:
public void method(int...args1, int...args2) //编译错误,提示不定项的参数必须放最后,因为args1不确定个数,系统不能判断什么时候是args2的参数
public void method(int i, int j, int...args) //正确用法
public void method(String s, double d, int...args) //正确用法
3)重载时,运行优先级问题
public void method(String...args);
public void method(String s1);
public void method(String s2, String s3); //确定参数的方法优先级高于不定项参数的方法
public static void main(String[] args){
method("看看调用哪个方法"); //调用了method(String s1)
method("猜猜是哪个", "。。。"); //调用了method(String s1, String s2)
//可知,系统先匹配确定参数的方法,没有再去匹配调用不定项参数的方法
}
详情点此学习
下面写一个具体的例子
摘抄至http://www.cnblogs.com/whgw/archive/2011/10/01/2197103.html
public class Varable {
public static void main(String [] args){
System.out.println(add(2,3));
System.out.println(add(2,3,5));
}
public static int add(int x,int ...args){
int sum=x;
for(int i=0;i<args.length;i++){
sum+=args[i];
}
return sum;
}
}
上一篇: C#中发送邮件代码