前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中的可变参数_Effective Java 2.0_Item 2知识点

Java中的可变参数_Effective Java 2.0_Item 2知识点

作者头像
Tyan
发布2022-05-09 08:24:46
3050
发布2022-05-09 08:24:46
举报
文章被收录于专栏:SnailTyan

文章作者:Tyan 博客:noahsnail.com

1. 可变参数Varargs介绍

在JDK 1.5之前,要想在方法中使用可变参数,则必须通过数组(或其它集合)来实现,在这种情况下你需要将变量显式的定义在数组中,在使用时要从数组中取出变量。另一种方法是进行函数重载。而在JDK 1.5中,引入了可变参数(Varargs),全称为variable number of arguments,常被称为variable arguments。可变参数仍然是通过数组来实现的,只不过编译器帮你隐式的实现了这个过程,此外,它还能兼容以前的API。

可变参数,也就是说可以在参数列表中使用个数不确定的参数,最经典的例子就是Java中的main方法,参数的个数没有办法确定,此时就可以使用可变参数来处理方法中的参数。使用时可以按照数组的使用方式来用。

下面是可变参数定义的例子:

代码语言:javascript
复制
public static String format(String pattern, Object... arguments) {
    ...
    for(Object temp : arguments) {
        //业务逻辑
    }
    ...
}

2. 使用可变参数的一个例子

代码语言:javascript
复制
public class IntSum {

    public int sum(int... intArray) {
        int sumInt = 0 ;
        for (int temp : intArray) {
            sumInt += temp;
        }
        return sumInt;
    }


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        IntSum test = new IntSum();
        System.out.println(test.sum(1));
        System.out.println(test.sum(1, 2));
        System.out.println(test.sum(1, 2, 3));

    }

}

输出结果为:1,3,6。

代码语言:javascript
复制
public class IntSum {

    public int sum(int a) {
        return 0;
    }

    public int sum(int... intArray) {
        int sumInt = 0 ;
        for (int temp : intArray) {
            sumInt += temp;
        }
        return sumInt;
    }


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        IntSum test = new IntSum();
        System.out.println(test.sum(1));
        System.out.println(test.sum(1, 2));
        System.out.println(test.sum(1, 2, 3));

    }

}

输出结果为:0,3,6

3. 使用可变参数的注意事项

  • 可变参数只有当参数数目不确定时才会使用。
  • 当参数中需要T[]作为参数时,可以考虑使用可变参数。
  • 可变参数只能用在参数列表中的最后一个位置,且方法中只能有一个可变参数。
  • 在方法调用时,如果能够和固定参数的方法匹配,也能够与可变长参数的方法匹配,则优先选择固定参数的方法。
  • 由于使用可变参数需要隐式的创建匿名数组并初始化,因此会影响性能,在性能优先的情况下慎用。
  • 尽量避免重载含有可变参数的方法。
  • 可变参数输入时不能传null值。
  • Arrays.asList()方法支持可变参数。

参考资料:

1、Effective Java 2.0

2、http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html

3、http://www.cnblogs.com/lanxuezaipiao/p/3190673.html

4、http://javarevisited.blogspot.com/2011/09/variable-argument-in-java5-varargs.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 可变参数Varargs介绍
  • 2. 使用可变参数的一个例子
  • 3. 使用可变参数的注意事项
  • 参考资料:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档