zoukankan      html  css  js  c++  java
  • 第四十二条:慎用可变参数

    Java 1.5发行版本中增加了可变参数方法。可变参数方法接受0个或者多个指定类型的参数。

    可变参数机制通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法。

    这样由于可变参数的方法,可变参数时借助数组实现的的,所有调用可变参数的方法时,我们可以传入若干个参数,也可以传入保存

    有若干个参数的数组。

    对于可变参数使用,比较典型的一个方法是:Arrays.asList(T. . .   args)

    我们调用这个方法时可以这样:  List<Integer>  list =  Arrays.asList(1,2,3);

    也可以这样:  Integer[]  i   = new  Integer[]{1,2,3} ;       List<Integer>   list = Arrays.asList(i);

    需要一点需要注意 当我们给传入一个引用类型数组时,会将数组中的对象分别当成一个对象,存入集合中。

    当我们传入一个基本类型的数组时,会将这个数组当成一个对象存入集合中。 

    int[]  i  =  new  int[]{1,2,3};

    List<int[]>   list  = Arrays.asList(i);    

    分析Arrays.asList(T. . .  args)的源码可知,是创建了一个ArrayList,而泛型集合不能保存基本类型,所以程序只能讲基本类型数组当成一个

    对象,存进集合,因为不管是基本类型数组还是引用类型的数组,都是引用类型。

    简而言之,在定义参数数目不定的方法时,可变参数是一个很方便的方式,但是它们不应该被过度滥用,如果使用不当,会产生混乱的结果。

  • 相关阅读:
    实现h5中radio单击取消与选中
    小程序中的组件化理解
    阿里字体css代码引入方法
    前端布局心得小结
    Python学习资源汇总,转载自他人
    史上最全 原生javascript的知识总结,适合新手及查资料用!
    windows Python 3.4.3 安装图文
    PyInstaller编译python3时使用的详细参数介绍
    PyInstaller 安装方法 及简单的编译exe (python3)
    Windows 安装 GTK+ 图文说明
  • 原文地址:https://www.cnblogs.com/wangliyue/p/4487171.html
Copyright © 2011-2022 走看看