很久没有写日志了,最近由于项目紧张在研究一些Java的反射机制,想利用该机制更好的完善和封装项目还有代码,今天在研究反射时,沈阳斌子遇到一个问题就是封装一个方法时有可变参数的问题,经上网查找找到如下方式和技巧。
编写Java程序时,经常会遇到一个方法需要多个参数的情况。例如一个求和方法:
public int add(int[] list){ int sum = 0; for (int i=0;i<list.length;i++) sum += list[i]; return sum; }
重载的方式:
public int add(int a,int b){ return a + b; } public int add(int a,int b,int c){ return a + b + c; }
JDK5优化了for循环,可以利用它来写更简洁的代码:
public int add(int... list){ int sum = 0; for (int item:list) sum += item; return sum; }
技巧:
add(int... list) ,三个点代表的是数量可变的参数,相信这点很多学Java的人都不知道。
另外需要注意的一点是,可变参数必须放在所有参数的最后,例如
add(int... list,int a) 是错误的,但是add(int a,int... list)就是正确的。
资料参考:http://www.cnblogs.com/yezhenhan/archive/2012/08/08/2628835.html