java中不定长度参数有什么用?实例展示

BSO 2020-09-17 09:51:57 java常见问答 6194

随着时代的不断发展与进步,新兴技术的应用也越来越广泛。而java编程语言的应用更是其中的重中之重。今天就来为大家介绍java中不定长度参数有什么用,并且通过实际的代码来为大家展示。一起来看看吧。

一、 首先在调用某个方法时,如果方法的参数个数事先无法确定。

比如说,System.out.printf()方法中并没有办法事先决定要给的参数个数,代码如下所示:

System.out.printf("%d", 10);
System.out.printf("%d %d", 10, 20);
System.out.printf("%d %d %d", 10, 20, 30);

好在J2SE 5.0之后开始支持不定长度参数(Variable-length Argument),可以解决上述的问题,为大家展示一个示例,代码如下所示:

public class MathTool
{
    public static int sum(int...nums)
    { //使用…声明参数
        int sum = 0;
        for (int num: nums)
        {
            sum += num;
        }
        return sum;
    }
}

二、要使用不定长度参数,在声明参数行时要在类型关键词后加上…,然而在sum()方法的区块中可以看到,实际上nums是一个数组,编译器会将参数行的(int … nums)解释为(int[] nums)。可以通过下面的示例方式来制定各种长度的参数,代码如下所示:

public class TestVarargs
{
    public static void main(String[] args)
    {
        int sum = 0;
        sum = MathTool.sum(1, 2);
        System.out.println("1 + 2 = " + sum);
        sum = MathTool.sum(1, 2, 3);
        System.out.println("1 + 2 +3 = " + sum);
        sum = MathTool.sum(1, 2, 3, 4, 5);
        System.out.println("1 + 2 + 3 + 4 + 5 = " + sum);
    }
}

执行结果,代码如下所示:

1 + 2 = 3
1 + 2 + 3 = 6
1 + 2 + 3 + 4 + 5 = 15

三、编译器会将传递给方法的参数解释为int数组然后传入至sum()中,所以实际上不定长度参数的功能也是自J2SE 5.0后所提供的编译蜜糖(Compiler Sugar)。需要注意的是,在方法上使用不定长度参数时,必须声明的参数必须设置在参数行的最后一个。举个合法例子,代码如下所示:

public void someMethod(int arg1, int arg2, int...varargs)
{
    // ...
}

举个不合法例子,代码如下所示:

public void someMethod(int...varargs, int arg1, int arg2)
{
    // ...
}

也无法使用两个以上的不定长度参数,再举个不合法例子,代码如下所示:

public void someMethod(int...varargs1, int...varargs2)
{
    // …
}

如果使用对象的不定长度参数,声明的方法相同,代码如下所示:

public void someMethod(SomeClass… somes)
{
    // …
}

以上就是关于java中不定长度参数有什么用的实例展示。想要了解更多java经典例子以及常见问题,敬请关注奇Q工具网。

推荐阅读;

java中有哪些常用参数?它们有什么作用?

java中方法参数如何引用传递?图文详解

java中的参数传递机制是什么?实例展示