可变参数研究

本文深入探讨了可变参数在Java中的实现机制,揭示了可变参数本质上为数组的事实,并通过实例验证了这一结论。同时,文章对比了String[]与String...的使用,指出两者在编译层面被视为相同,无法构成方法重载。此外,还介绍了方法重载的规则,即通过参数数量或类型的差异来区分不同的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*可变参数的研究,可变参数底层是数组,
 * 确定这个结论之后要实际验证测试
 * 
 * */

package day9yue1;

public class Test1 {
    
    public void test(String[] s)
    {}
    /*
     * 如果这2个方法都叫test,编译错误,说明参数是一模一样,没有重载
     * 结论 String[] s 和   String... s 结果是一样的
     * 
     * */
    public void test2(String... s2)
    {}
    
    
    //方法重载测试,参数数量不一样或者参数前后不一样都可以重载,只要调用时候能区分就行
    
    public void test3(int a ,String b)
    {}
    
    public void test3(String b, int a)
    {}
    

}
 

 

注意

1 可变参数只能放在形参最后

2 一个方法只能有1个可变参数

 

https://www.cnblogs.com/canchi/p/11440310.html

 

/*可变参数的研究,可变参数底层是数组,
 * 确定这个结论之后要实际验证测试
 * 
 * */

package day9yue1;

public class Test1 {
    
    public void test(String[] s)
    {}
    /*
     * 如果这2个方法都叫test,编译错误,说明参数是一模一样,没有重载
     * 结论 String[] s 和   String... s 结果是一样的
     * 
     * */
    public void test2(String... s2)
    {}
    
    
    //方法重载测试,参数数量不一样或者参数前后不一样都可以重载,只要调用时候能区分就行
    
    public void test3(int a ,String b)
    {}
    
    public void test3(String b, int a)
    {}
    
    
    
    
    public static void main(String[] args) {
        printLen(3,"hello","2","zou");
        
        
    }
    
    
    public static void printLen(int a, String...s)
    {
        //打印3
        System.out.println(s.length);//s.length能使用说明就是数组,所以数组所有方法和属性都能使用,切记
    }
    

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值