到J2SE1.4為止,一直無法在Java程序里定義實參個數(shù)可變的方法——因為Java要求實參(Arguments)和形參(Parameters)的數(shù)量和類型都必須逐一匹配,而形參的數(shù)目是在定義方法時就已經(jīng)固定下來了。盡管可以通過重載機制,為同一個方法提供帶有不同數(shù)量的形參的版本,但是這仍然不能達到讓實參數(shù)量任意變化的目的。
成都創(chuàng)新互聯(lián)公司專注于朔州網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供朔州營銷型網(wǎng)站建設,朔州網(wǎng)站制作、朔州網(wǎng)頁設計、朔州網(wǎng)站官網(wǎng)定制、小程序設計服務,打造朔州網(wǎng)絡公司原創(chuàng)品牌,更為您提供朔州網(wǎng)站排名全網(wǎng)營銷落地服務。然而,有些方法的語義要求它們必須能接受個數(shù)可變的實參——例如著名的main方法,就需要能接受所有的命令行參數(shù)為實參,而命令行參數(shù)的數(shù)目,事先根本無法確定下來。
對于這個問題,傳統(tǒng)上一般是采用“利用一個數(shù)組來包裹要傳遞的實參”的做法來應付。
1.用數(shù)組包裹實參
“用數(shù)組包裹實參”的做法可以分成三步:首先,為這個方法定義一個數(shù)組型的參數(shù);然后在調(diào)用時,生成一個包含了所有要傳遞的實參的數(shù)組;最后,把這個數(shù)組作為一個實參傳遞過去。
這種做法可以有效的達到“讓方法可以接受個數(shù)可變的參數(shù)”的目的,只是調(diào)用時的形式不夠簡單。
J2SE1.5中提供了Varargs機制,允許直接定義能和多個實參相匹配的形參。從而,可以用一種更簡單的方式,來傳遞個數(shù)可變的實參。
Varargs的含義
大體說來,“Varargs”是“variablenumberofarguments”的意思。有時候也被簡單的稱為“variablearguments”,不過因為這一種叫法沒有說明是什么東西可變,所以意義稍微有點模糊。
2.定義實參個數(shù)可變的方法
只要在一個形參的“類型”與“參數(shù)名”之間加上三個連續(xù)的“.”(即“...”,英文里的句中省略號),就可以讓它和不確定個實參相匹配。而一個帶有這樣的形參的方法,就是一個實參個數(shù)可變的方法。
清單1:一個實參個數(shù)可變的方法
private static int sumUp(int... values) { }
新聞名稱:Java中可變長度參數(shù)代碼詳解-創(chuàng)新互聯(lián)
URL分享:http://www.rwnh.cn/article32/dscspc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、微信公眾號、網(wǎng)站改版、關(guān)鍵詞優(yōu)化、微信小程序、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容