java的可變參數為什么只能放在最后一個?
可變參數是java1.5的新特性,它用于當參數個數不確定,類型確定的情況,java把可變參數當做數組來處理。
可變參數有個很重要的注意事項,就是當方法里有多個參數時,必須當在最后一項。
原因:因為可變參數是用來傳入不確定參數個數的參數,意思是無論你給了多少參數,只要是它的類型的它都照傳無誤,如果它放在前面,把所有參數都傳了,那后面的相同類型參數就沒得傳了。
而且java是無法區分傳入的參數是屬于前一個可變參數或者后一個參數的,它是按照順序來傳入參數的,比如你寫的方法里的形參是
public void method(int x,String name);
當你調用方法是傳入參數的順序也必須是先
int 再到String 如method(18,“Bob”);如果順序不匹配,method(“Bob”,18);就會報錯。
因此,防止不必要的錯誤,java就干脆規定,可變參數必須放在參數列表最后一項,而且一個方法只能有一個可變參數。
以上只是個人的一些觀點,如有不妥歡迎批評指正!