Java基础 && 可变参数

可变参数(1.7)

方法声明中的参数类型后面跟 …

从语法层面跟数组类似,但比数组灵活。

注意事项:Arrays.asList的返回值类型不是我们学过的某个实现类,而是它自己的。

  • 不能add等修改。

  • 要想正常处理,必须再重新构造:

    • new ArrayList(Arrays.asList(…));

定义方法
在定义方法时,在最后一个形参后加上三点“…“,就表示该形参可以接受多个参数值,多个参数值被当成数组传入。
注意:

1.可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数

2.由于可变参数必须是最后一个参数,所以一个函数最多只能有一个可变参数

3.Java的可变参数,会被编译器转型为一个数组

4.变长参数在编译为字节码后,在方法签名中就是以数组形态出现的。这两个方法的签名是一致的,不能作为方法的重载。如果同时出现,是不能编译通过的。可变参数可以兼容数组,反之则不成立

可变参数方法的调用

调用可变参数方法,可以给出零到任意多个参数,编译器会将可变参数转化为一个数组。也可以直接传递一个数组,
代码演示:

public class Varargs {
   

	public static void test(String... args) {
   
        for(String arg : args) {
   
            System.out.println(arg);
        }
    }

    public static void main(String[] args) {
   
        test();//0个参数
        test("a");//1个参数
        test("a","b");//多个参数
        test(new String[] {
   "a", "b", "c"});//直接传递数组
    }
}
方法重载

优先匹配固定参数
调用一个被重载的方法时,如果此调用既能够和固定参数的重载方法匹配,也能够与可变长参数的重载方法匹配,则选择固定参数的方法

public class Varargs {
   
public static void test(String... args) {
   
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值