zoukankan      html  css  js  c++  java
  • 可变参数

    在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式:

    修饰符 返回值类型 方法名(参数类型... 形参名){  }

    其实这个书写完全等价与

    修饰符 返回值类型 方法名(参数类型[] 形参名){  }

    只是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据即可。

    jdk1.5以后。出现了简化操作。... 用在参数上,称之为可变参数。

    同样是代表数组,但是在调用这个带有可变参数的方法时,不用创建数组(这就是简单之处),

    直接将数组中的元素作为实际参数进行传递,其实编译成的class文件,将这些元素先封装到一个数组中,在进行传递。这些动作都在编译.class文件时,自动完成了。

    代码演示:  

    public class ParamDemo {
        public static void main(String[] args) {
            int[] arr = {21,89,32};
            int sum = add(arr);
            System.out.println(sum);
            sum = add(21,89,32);//可变参数调用形式
            System.out.println(sum);
            
        }
    
        //JDK1.5之后写法
        public static int add(int...arr){
            int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                sum += arr[i];
            }
            return sum;
        }
    
        //原始写法
        /*
        public static int add(int[] arr) {
            int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                sum += arr[i];
            }
            return sum;
        }
        */
    }

    l  上述add方法在同一个类中,只能存在一个。因为会发生调用的不确定性

    注意:如果在方法书写时,这个方法拥有多参数,参数中包含可变参数,可变参数一定要写在参数列表的末尾位置。

  • 相关阅读:
    java源码--Map
    数据结构 -- 哈希表(hash table)
    第三篇:SpringBoot模板Freemaker使用
    第四篇:SpringBoot 数据持久化之JdbcTemplate
    数据结构 -- 红黑树
    第二篇:彻底搞清楚 Spring Boot 的配置文件 properties和yml
    数据结构 -- AVL树
    Spring Boot之从Spring Framework装配掌握SpringBoot自动装配
    数据结构 -- Trie字典树
    数据结构 -- 并查集
  • 原文地址:https://www.cnblogs.com/lixiangyang521/p/7885859.html
Copyright © 2011-2022 走看看