Java基础——可变个数的形参

一、可变个数形参的方法:

1. jdk5.0新增

允许定义一种方法,其形参可以和多个实参相匹配(0个、1个、2个…几个都行)
【和上一个方法同时存在时,传入一个参数,优先匹配上一个方法】


2. 具体使用

  1. 格式:“数据类型 … 变量名”,如:
public void show(String ... strs){}
  1. 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个…

  2. 可变个数形参的方法,与本类中方法名相同、参数列表不同的方法,也构成重载;

  3. 可变个数形参的方法,与形参是数组的同名方法,无法构成重载(即,无法共存);
    【这是由于历史原因:在jdk5.0以前,想要传入多个形参,只能使用数组; jdk5.0以后,可变类型参数相当于提供了一种传多个参数的简便方式。因此编译器认为这两种方式是完全一样的】

  4. 可变个数形参,在方法的形参中,只能声明在末尾,而且只能有一个
    【很好理解,如果放在开头或中间,或者有好几个,编译器就会分不清楚,到底前面究竟是有几个是给可变形参的(可能是你忘了写别的形参呢)】

//测试代码:
public class MethodArgsTest {
	public static void main(String[] args) {
		MethodArgsTest test = new MethodArgsTest();
		
		test.show(1);
		test.show("hello");
		test.show("Hello", "World");
		test.show("Hello", "Wor", "World");
		
		test.show(new String[]{"AA", "BB", "CC"});
		//可见,即使就传数组,依然可以匹配到可变形参方法
	}
	
	public void show(int i){}
	
	public void show(String s){}
	
	/*
	 * 允许定义一种方法,其形参可以和多个实参相匹配(0个、1个、2个...几个都行)
	 * 【和上一个方法同时存在时,传入一个参数,优先匹配上一个方法】
	 */
	public void show(String ... strs){
		System.out.println("show(String ... strs)");
		
		//遍历,和数组一样(实际上就相当于数组,只是格式变简单了)
		for(int i = 0; i < strs.length; i++){
			System.out.print(strs[i] + "\t");
		}
	}
	
	/*
	 * 但是形参是数组,与形参是可变类型参数之间,是无法构成重载的(即,无法共存)
	 * 【这是由于历史原因:在jdk5.0以前,想要传入多个形参,只能使用数组;
	 * jdk5.0以后,可变类型参数相当于提供了一种传多个参数的简便方式,因此编译器认为这两种方式是完全一样的】
	 */
//	public void show(String[] strs){
//		
//	}
	
	public void show(int i, String ... strs){}
}

3. 使用场景

例如:操作数据库的时候,查询操作可能用户会给定多个查询条件,

select ... from ... where id = ? & name = ? & .....

这个时候,就可以在Java层面编程,用可变多个参数,给占位符赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值