Java中可變長度參數(shù)代碼詳解-創(chuàng)新互聯(lián)

到J2SE1.4為止,一直無法在Java程序里定義實(shí)參個(gè)數(shù)可變的方法——因?yàn)镴ava要求實(shí)參(Arguments)和形參(Parameters)的數(shù)量和類型都必須逐一匹配,而形參的數(shù)目是在定義方法時(shí)就已經(jīng)固定下來了。盡管可以通過重載機(jī)制,為同一個(gè)方法提供帶有不同數(shù)量的形參的版本,但是這仍然不能達(dá)到讓實(shí)參數(shù)量任意變化的目的。

成都創(chuàng)新互聯(lián)公司專注于朔州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供朔州營銷型網(wǎng)站建設(shè),朔州網(wǎng)站制作、朔州網(wǎng)頁設(shè)計(jì)、朔州網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造朔州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供朔州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

然而,有些方法的語義要求它們必須能接受個(gè)數(shù)可變的實(shí)參——例如著名的main方法,就需要能接受所有的命令行參數(shù)為實(shí)參,而命令行參數(shù)的數(shù)目,事先根本無法確定下來。

對(duì)于這個(gè)問題,傳統(tǒng)上一般是采用“利用一個(gè)數(shù)組來包裹要傳遞的實(shí)參”的做法來應(yīng)付。

1.用數(shù)組包裹實(shí)參

“用數(shù)組包裹實(shí)參”的做法可以分成三步:首先,為這個(gè)方法定義一個(gè)數(shù)組型的參數(shù);然后在調(diào)用時(shí),生成一個(gè)包含了所有要傳遞的實(shí)參的數(shù)組;最后,把這個(gè)數(shù)組作為一個(gè)實(shí)參傳遞過去。

這種做法可以有效的達(dá)到“讓方法可以接受個(gè)數(shù)可變的參數(shù)”的目的,只是調(diào)用時(shí)的形式不夠簡(jiǎn)單。

J2SE1.5中提供了Varargs機(jī)制,允許直接定義能和多個(gè)實(shí)參相匹配的形參。從而,可以用一種更簡(jiǎn)單的方式,來傳遞個(gè)數(shù)可變的實(shí)參。

Varargs的含義

大體說來,“Varargs”是“variablenumberofarguments”的意思。有時(shí)候也被簡(jiǎn)單的稱為“variablearguments”,不過因?yàn)檫@一種叫法沒有說明是什么東西可變,所以意義稍微有點(diǎn)模糊。

2.定義實(shí)參個(gè)數(shù)可變的方法

只要在一個(gè)形參的“類型”與“參數(shù)名”之間加上三個(gè)連續(xù)的“.”(即“...”,英文里的句中省略號(hào)),就可以讓它和不確定個(gè)實(shí)參相匹配。而一個(gè)帶有這樣的形參的方法,就是一個(gè)實(shí)參個(gè)數(shù)可變的方法。

清單1:一個(gè)實(shí)參個(gè)數(shù)可變的方法

private static int sumUp(int... values) {
}

新聞名稱:Java中可變長度參數(shù)代碼詳解-創(chuàng)新互聯(lián)
URL分享:http://bm7419.com/article32/dscspc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司微信公眾號(hào)、網(wǎng)站改版、關(guān)鍵詞優(yōu)化、微信小程序、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)