可變參數方法的編寫

簡書 阿貝
轉載請注明原創出處,謝謝!
如果讀完覺得有收獲的話,歡迎點贊加關注

起因

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

實現

先看看‘土’辦法是怎么實現。



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

JDK1.5增加了新特性:可變參數


Class.class

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


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

這樣的設計給我帶來什么樣的便處?

  1. 減少了參數的數量,看起來更加簡潔。
  2. 適用于參數類型確定,但是,參數數量不確定的情況。
  3. 在一定程度上減少重載方法的數量。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,186評論 6 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,593評論 25 708
  • 每個公司對于大客戶分類管理各有不同,共同的一點:大客戶貢獻銷售額是第一的,只要攻打成功,則能改變公司和銷售人員命運...
    瘋狂的小蝸牛閱讀 999評論 0 0
  • 在最近的項目中使用到View抖動的效果,就從StackOverflow搬運了一個在此記錄一下。
    Ever_Blacks閱讀 2,055評論 0 1
  • 暫時避開集市的嘈雜 接你的電話 聽到湛河的絲樂 和家鄉的風吼 聽著走著 我走進深巷 看到近在咫尺卻從未看到的景色 ...
    山水之間一森林閱讀 246評論 2 18