Java的不定参数

Java中的不定参数允许传入0个或任意多个参数,其真实类型为一维数组。例如:String…strings、Object…objects等。不定参数只能用于方法形参,且一个方法中只能有一个不定参数,并且它必须是最后的参数。在调用时,可以传入null、0个、1个或多个参数。

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

问题:在传参数的时候,如果参数的个数不确定怎么办?参数可以是0个,也可以是1个,可以是任意多个,怎么办呢?
这个时候就需要用到不定参数了。
1)首先,来观察一下不定参数的基本格式:
String…strings
Object…objects
int…is
float…fs
2)不定参数只能作为方法的形参,不能用作变量

    public static void main(String[] args) {
        String... s=null;//这样做是错误的,编译无法通过
    }

3)不定参数的真实类型是一维数组。数组的数据类型:定义该不定参数时指定的类型;数组的长度:传过去的参数的个数。
String…strings的真实类型是:String[]
Object…objects的真实类型是:Object[]
int…is的真实类型是:int[]
float…fs的真实类型是:float[]

public class Demo5 {
    public static void main(String[] args) {
        test(1);//传一个参数过去
    }

    public static void test(Object...objects){
        System.out.println(objects);
        System.out.println(objects.getClass().getTypeName());
        if(objects!=null){
            System.out.println("长度:"+objects.length);
        }
    }
}

运行结果:
[Ljava.lang.Object;@15db9742
java.lang.Object[]
长度:1
4)为不定参数传值:可以传null,可以传0个参数,可以传1个参数,可以传任意个参数。

public class Demo5 {
    public static void main(String[] args) {
        test(null);//传null过去
        test();//传0个参数
        test("a");//传1个参数
        test("a","b","c");//传3个参数
    }
    public static void test(String...strings){

    }
}

5)不定参数的2个规定:第一,方法的参数列表中最多只有一个不定长度的参数;第二,就是不定长度的数组的位置必须是最后一个参数。不然不能通过编译。这2项规定非常好理解。

public static void test2(String...strings,int number){
    //无法通过编译
    //The variable argument type String of the method test2 must be the last parameter
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值