Java 可变参数方法

原创
2021/04/12 21:29
阅读数 142

一、概念

JDK5.0出现的新特性。将同一个类中,多个方法名相同、参数类型相同、返回类型相同,仅仅是参数个数不同的方法抽取成一个方法,这种方法称为可变参数的方法。

 

1、好处:

提高代码的重用性和维护性。

2、语法:

public void show(String... str){ }

3、可变参数传值的四种方式:

  • 一个值也不传,可变参数会接收到长度为0的数组。
  • 传null,可变参数会接收到null。
  • 传数组,可变参数会接收到数组。
  • 传一个到多个数组元素值,可变参数会接收到数组。

4、可变参数和数组作为方法参数时的区别:

  • 从个数来看,可变参数只能有一个,数组可以有多个。
  • 从定义位置来看,可变参数只能定义在参数列表的末尾,数组可以在任何位置。
  • 从传参的形式来看,可变参数可以传数组、null、0个参数、一到多个参数,数组可以传数组引用、数组对象、null。

 

二、代码示例

简单示例如下:

public class Demo {

    public void show(String... str){
        if(null == str){
            System.out.println("is null");
        }
        if(null != str){
            System.out.println("is length:" + str.length);
        }
        
    }

    public static void main(String[] args) {
        Demo demo = new Demo();

        // 一个值都不传递
        demo.show();
        // 传数组对象
        demo.show(new String[]{"piao","bill","pig"});
        // 传多个元素值,会当成数组处理
        demo.show("piao","bill","pig","test");
        // 传null,但是这个参数不可用
        demo.show(null);
    }

}

方法重载:方法名相同,但是参数列表不一致。

public class Demo {

    public void show(String str){
        System.out.println("is value:" + str);
    }

    public void show(String... str){
       System.out.println("is length:" + str.length);
    }

    public static void main(String[] args) {
        Demo demo = new Demo();

        // 一个值都不传递
        demo.show();
        // 传数组对象
        demo.show(new String[]{"piao","bill","pig"});
        // 传多个元素值,会当成数组处理
        demo.show("piao","bill","pig","test");
        // 传null,但是这个参数不可用
        demo.show("piao");
    }

}

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部