JDK5新特性--可变参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK5新特性--可变参数相关的知识,希望对你有一定的参考价值。
1.可变参数的引入
package cn; /** * 可变参数 */ public class ChangeParameterDemo { public static void main(String[] args) { //2个数求和 int a = 10; int b = 20; int result = sum(a,b); System.out.println("result:"+result); int c = 30; result = sum(a,b,c); System.out.println("result:"+result); } public static int sum(int a,int b) { return a + b; } public static int sum(int a,int b,int c){ return a + b + c; } }
这样是可以实现功能,但是如果我要写一个求和的功能,我不知道调用此功能之前的参数个数,调用的时候我就知道我传递多少个实际参数。其实,意思就是我想穿几个实际参数,就传几个实际参数。怎么办呢?
思路一:使用数组啊
package cn; /** * 可变参数 */ public class ChangeParameterDemo { public static void main(String[] args) { //2个数求和 int a = 10; int result = sum(new int[]{a}); System.out.println(result); int b = 20; result = sum(new int[]{a,b}); System.out.println(result); int c = 30; result = sum(new int[]{a,b,c}); System.out.println(result); int d = 40; result = sum(new int[]{a,b,c,d}); System.out.println(result); } public static int sum(int[] a) { int sum = 0 ; for (int i = 0; i < a.length; i++) { sum += a[i]; } return sum; } }
这样是可以解决问题,但是每次我们都要实例化数组对象,好烦,能不能简单点,你又不是个演员。哈哈,看玩笑的。实际上JDK5之后提供了可变参数来解决这类问题。
思路二:使用JDk5之后提供的可变参数
package cn; /** * 可变参数 */ public class ChangeParameterDemo { public static void main(String[] args) { //2个数求和 int a = 10; int result = sum(a); System.out.println(result); int b = 20; result = sum(a,b); System.out.println(result); int c = 30; result = sum(a,b,c); System.out.println(result); int d = 40; result = sum(a,b,c,d); System.out.println(result); } public static int sum(int... a) { int sum = 0 ; for (int i = 0; i < a.length; i++) { sum += a[i]; } return sum; } }
2.那么可变参数是什么?
定义方法的时候不知道该定义多少个参数
3.可变参数的格式
修饰符 返回值类型 方法名(数据类型...变量名){}
4.注意事项
修饰符 返回值类型 方法名(数据类型...变量名){}
这里额变量其实是一个数组。
如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。
本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1862381
以上是关于JDK5新特性--可变参数的主要内容,如果未能解决你的问题,请参考以下文章