J2SE 5 0專題 2 5 可變長度引數

2021-03-31 08:56:59 字數 885 閱讀 7129

顧名思義,可變長度引數就是指在方法的引數體中,只要定義恰當,我們可以使用任意數量的引數,類似於使用物件陣列。在j2se 5.0中,乙個新的語法被引入,就是在引數型別名稱後面加上 ... ,表示該方法可以接受多個該型別的引數。需要說明的是可變長度引數必須放在引數列表的最後,且乙個方法只能包含乙個這樣的引數。

需要注意的是,這個語法只是在宣告乙個方法的時候管用,真正當我們具體實現這個方法時,我們通常都不這麼寫,因為這樣寫的話在方法體內該引數僅僅被當作乙個object,並不能通過這個object的方法呼叫獲取有意義的物件陣列。所以通常我們都是在宣告乙個方法時使用 ... 這樣的語法,而在具體實現時使用陣列。編譯器會處理這種差異,把它們當作相同的方法簽名。看下面的例子:

inte***ce itestvarargs

class myvarargs implements itestvarargs

}在j2se 5.0中,還有乙個很重要的新特性是基於可變長度引數的,那就是格式化輸出,我會在稍後的專題作更詳細地說明。

有關可變長度引數的更詳細說明,參考這裡。

[更新]

糾正一下:我上面對object...這樣形式的簽名理解有問題,其實如果乙個方法的簽名是類似object... args的話,在方法體內部,args被當作object陣列處理,於是可以以object同樣的方式操作,如args.length或者args[0]等等。所以看上去**應該是這個樣子更合適些:

inte***ceitestvarargs

class myvarargs implements itestvarargs

}見笑了。

J2SE 5 0新特性(五)可變長引數

可變長引數是j2se5新入的乙個特性,故名思義就是可以建立數目可變的引數方法,簡稱varargs方法。需要將數目不定的引數傳遞給乙個方法的情況很常見,當然在這個新特性被引入之前,我們遇到這種情況通常情況下有兩種方案來解決 一 如果需要的引數數目不大而且可知,我們可採用過載的形式來滿足,每不同的引數建...

J2SE5 0新特性之可變長引數

j2se5.0 新特性之可變長引數 晁嶽攀 allnest 163.有時候,我們傳入到方法的引數的個數是不固定的,為了解決這個問題,我們一般採用下面的方法 1 過載,多過載幾個方法,盡可能的滿足引數的個數。顯然這不是什麼好辦法。2 將引數作為乙個陣列傳入。雖然這樣我們只需乙個方法即可,但是,為了傳遞...

J2SE5 0新特性之可變長引數

有時候,我們傳入到方法的引數的個數是不固定的,為了解決這個問題,我們一般採用下面的方法 1 過載,多過載幾個方法,盡可能的滿足引數的個數。顯然這不是什麼好辦法。2 將引數作為乙個陣列傳入。雖然這樣我們只需乙個方法即可,但是,為了傳遞這個陣列,我們需要先宣告乙個陣列,然後將引數乙個乙個加到陣列中。現在...