簡書 阿貝
轉(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ù)列表的最后面。