亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java語法糖--個數可變的形參

標簽:
Java

1. 背景

从JDK1.5开始,Java支持个数可变的形参,类似:

public class ParamDemo {
	public static void main(String[] args) {
		String basketball = "篮球";
		String football = "足球";
		showSports(basketball, football);
	}

	/**
	 * 使用个数可变形参的方法
	 */
	public static void showSports(String... sports) {
		for (String sport : sports) {
			System.out.println(sport);
		}
	}
}

2. 优点

其实个数可变形参的本质就是一位数组,但是如果上面的例子采用一位数组的话,写起来要更加麻烦点。

public class ParamDemo {
	public static void main(String[] args) {
		String basketball = "篮球";
		String football = "足球";
		showSports(basketball, football);
		showSportsByArray(new String[] { basketball, football });
	}

	/**
	 * 使用个数可变形参的方法
	 */
	public static void showSports(String... sports) {
		for (String sport : sports) {
			System.out.println(sport);
		}
	}

	/**
	 * 使用1维数组作为形参
	 */
	public static void showSportsByArray(String[] sports) {
		for (String sport : sports) {
			System.out.println(sport);
		}
	}
}

3. 注意事项

3.1 位置只能在方法的最后

由于个数可变的形参数量不确定,所以只能放到形参列表的最后。而数组形式的参数是可以放到形参列表任意位置的。

3.2 个数可变形参本质是数组,所以不能算重载

看下面的例子:

public class ParamDemo {
	public static void main(String[] args) {
		String basketball = "篮球";
		String football = "足球";
		showSports(basketball, football);
		showSportsByArray(new String[] { basketball, football });
	}

	/**
	 * 使用个数可变形参的方法
	 */
	public static void showSports(String... sports) {
		for (String sport : sports) {
			System.out.println(sport);
		}
	}

	/**
	 * 使用1维数组作为形参
	 */
	public static void showSports(String[] sports) {
		for (String sport : sports) {
			System.out.println(sport);
		}
	}
}

编译就报错了,如下,说明啥?String...这样的形参其实还是编译为String[]运作的,所以不算重载。

Duplicate method showSports(String[]) in type ParamDemo	ParamDemo.java	
點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
軟件工程師
手記
粉絲
1.5萬
獲贊與收藏
1524

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消