可變參數(shù)方法的編寫

簡書 阿貝
轉(zhuǎn)載請注明原創(chuàng)出處,謝謝!
如果讀完覺得有收獲的話,歡迎點贊加關(guān)注

起因

最近工作也差不多確定下來了,打算好好閱讀源碼。于是遇到很久之前就想弄明白的問題——java對可變參數(shù)方法是如何實現(xiàn)的。

實現(xiàn)

先看看‘土’辦法是怎么實現(xiàn)。



在調(diào)用方法之前我們首先還需要創(chuàng)建一個參數(shù)指定類型的局部變量。再傳遞到方法里面。

JDK1.5增加了新特性:可變參數(shù)


Class.class

仔細(xì)看看parameterTypes的類型其實是Class<?>[]。對,就是一個數(shù)組。于是乎,我就開始照樣畫葫蘆。


注意一點
其實上面也說明白了,這個可變參數(shù)必須放在所有參數(shù)的后面。
但是,兩個多參數(shù),能不能放在同一個方法里面呢?答案是不可以的,其實我們嘗試的去創(chuàng)建一個這樣的方法的時候,編譯器自動會提示你
The variable argument type int of the method out must be the last parameter顯然我們這樣做是不可以的,同時也就是決定了一個方法只能有一個可變參數(shù)并且必須放置在參數(shù)列表的最后面。

這樣的設(shè)計給我?guī)硎裁礃拥谋闾帲?/h1>
  1. 減少了參數(shù)的數(shù)量,看起來更加簡潔。
  2. 適用于參數(shù)類型確定,但是,參數(shù)數(shù)量不確定的情況。
  3. 在一定程度上減少重載方法的數(shù)量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,508評論 6 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,316評論 25 708
  • 每個公司對于大客戶分類管理各有不同,共同的一點:大客戶貢獻(xiàn)銷售額是第一的,只要攻打成功,則能改變公司和銷售人員命運...
    瘋狂的小蝸牛閱讀 1,121評論 0 0
  • 在最近的項目中使用到View抖動的效果,就從StackOverflow搬運了一個在此記錄一下。
    Ever_Blacks閱讀 2,094評論 0 1
  • 暫時避開集市的嘈雜 接你的電話 聽到湛河的絲樂 和家鄉(xiāng)的風(fēng)吼 聽著走著 我走進(jìn)深巷 看到近在咫尺卻從未看到的景色 ...
    山水之間一森林閱讀 269評論 2 18

友情鏈接更多精彩內(nèi)容