在不确认参数的情况下,我们该如何去定义方法呢?

大家可能碰到过类似的情况了,在参数不确定的情况下,我们该怎么去定义一个方法呢?最开始的时候,我的第一想法就是利用数组来保存值,然后在方法的参数中直接就传一个数组就OK了,这样可以吗?绝对可以。老师曾经说过,不想偷懒,不想把代码写精简的程序员不算一个好的程序员。那么有更好的方法吗?答案当然是肯定的。

我在用MyEclipse配置JPA的时候才发现的,让我获益匪浅,发出来给大家分享一下。

举个例子:如果我们现在要运算多个数相加的和。

第一想法代码:

第一想法代码如下
 1 public class Varable {
2 public static void main(String[] args) {
3 int a=1,b=2,c=3;
4 double[] numbers=new double[]{a,b,c};
5 System.out.println(OldMethodAdd(numbers));
6 }
7
8 public static double OldMethodAdd(double[] args){
9 double sum=0;
10 for (int i = 0; i < args.length; i++) {
11 sum+=args[i];
12 }
13 return sum;
14 }
15 }

大家看看,完全可以实现,下面我就用我刚刚才知道的新方法

新方法代码
 1 public class Varable {
2 public static void main(String[] args) {
3 int a=1,b=2,c=3;
4 System.out.println(NewMethodAdd(a,b,c));
5 }
6
7
8 public static double NewMethodAdd(int...args){
9 double sum=0;
10 for (int i = 0; i < args.length; i++) {
11 sum+=args[i];
12 }
13 return sum;
14 }
15

...  这就是可变参数

它的特点:

1.只能出现在参数列表的最后

2....位于变量类型和变量名之间,前后有无空格都行

3.调用可变参数的方法时,编译器会为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

 

 1 public class Varable {
2 public static void main(String[] args) {
3 int a=1,b=2,c=3;
4 double[] numbers=new double[]{a,b,c};
5 System.out.println(OldMethodAdd(numbers));
6 }
7
8 public static double OldMethodAdd(double[] args){
9 double sum=0;
10 for (int i = 0; i < args.length; i++) {
11 sum+=args[i];
12 }
13 return sum;
14 }
15 }


 

原文地址:https://www.cnblogs.com/Laupaul/p/2370408.html