欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
 }
}
相关标签: jdk1.5新特性