在动态语言,如ruby中,可以实现可变参数
Ruby代码
1.def test(* arg)
2. for s in arg
3. puts s,s.class
4. end
5.end
6.
7.test(1,"2",2.3)
只需在参数前加一个*即可。
调用方法时,可以传入任意数量,任意类型的参数了。
一直以为可变参数是动态语言的特性呢。
最近才发现,java里原来也可以实现可变参数。
SE5之前,我们如果想实现可变参数的效果,可以通过一个数组或Collection
1.public static void test(String [] args){
2. for (int i = 0; i < args.length; i++) {
3. System.out.println(args[i]);
4. }
5.}
如果是想不同类型的参数一起传,可以使用Collection,例如List等。
在SE5之后,java添加了这个新功能。也很简单。 只用三个点号(...)
1. public static void test(int ...objects){
2. //参数都是int类型的,所以可以用foreach
3.for (int object : objects) {
4. System.out.println(object);
5.}
6. }
7. public static void main(String [] args){
8. test();
9. test(1);
10. test(1,2,3,4,5);
11. }
12.
|