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

      今天碰到了 public static String getAutoRelateRelationship(final JSONObject modifyJson, String... inUsedConn) {...},其中有可变参数列表。其定义格式为:
    访问修饰符  返回值类型  方法标识符(参数类型  参数标识符1,参数类型  参数标识符2,参数类型...参数标识符){}。

      可变参数:可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。一般我们都是将方法中的参数定义为数组,但是这样的话我们只能传递数组对象而不能传递离散的值。

      注意,如果方法里面接收多个参数的话,可变参数必须是方法声明中的最后一个参数,并且不可能具有两个或两个以上的可变参数。

      应用场景可以是,比如要定义一个求和功能的方法,但求和的数不确定,这时就可以采用可变参数的方法来完成这个功能。

    public class SumOperation {
    
        public static void main(String[] args) {
            System.out.println("1+2=" + getSum(1,2));//参数是离散值
            System.out.println("1+2+3=" + getSum(1,2,3));
            System.out.println("1+2+3+4=" + getSum(new Integer[]{1,2,3,4}));//参数是数组
        }
        public static int getSum(Integer... params){
            int sum = 0;
            for(int i:params)
                sum += i;
            return sum;
        }
    }

    结果:

    另外:

            Integer[] arrays = new Integer[]{1,2,3,4};
            List<Integer> list = Arrays.asList(arrays);
            //下面这行是错误的,此list不支持增加和删除,但是可以更改值
            list.add(0, 1);

    下面看看Arrays.asList(Integer... a)的实现源码

        @SafeVarargs
        @SuppressWarnings("varargs")
        public static <T> List<T> asList(T... a) {
            return new ArrayList<>(a);
        }

     基本上可以确定,数组T[ ]和可变参数T... a可以实参形参相互调用。

    身体是革命的本钱,爱跑步,爱生活!
  • 相关阅读:
    面向对象-继承
    antd pro2.0 使用记录一:登录/注册/底部版权等设置
    vscode中git的配置
    电脑桌面文件夹出现在屏幕之外了,怎么解决
    百度网盘不限速-Motrix
    u盘在电脑读不出来,但别的可以读
    win10 命令重置 管理员密码
    nginx 配置
    react 记录:运行npm run eject命令暴露配置文件都报这个错误
    浏览器 连不上网 (3):DNS 服务器问题
  • 原文地址:https://www.cnblogs.com/caozx/p/9019567.html
Copyright © 2011-2022 走看看