Java 可變引數
概述
Java1.5增加了新特性:可變引數:適用於引數個數不確定,型別確定的情況,java把可變引數當做陣列處理(引數型別... 陣列名)。
注意:可變引數必須位於最後一項。當可變引數個數多餘一個時,必將有一個不是最後一項,所以只支援有一個可變引數。
因為引數個數不定,所以當其後邊還有相同型別引數時,java無法區分傳入的引數屬於前一個可變引數還是後邊的引數,所以只能讓可變引數位於最後一項。
可變引數的特點
- 只能出現在引數列表的最後
- ...位於變數型別和變數名之間,前後有無空格都可以
- 呼叫可變引數的方法時,編譯器為該可變引數隱含建立一個陣列,在方法體中一陣列的形式訪問可變引數
eg. 求和方法
public class Varable {
public static void main(String[] args) {
System.out.println(add(2, 3));
System.out.println(add(2, 3, 5));
}
public static int add(int x, int... args) {
int sum = x;
for (int i = 0; i < args.length; i++) {
sum += args[i];
}
return sum;
}
}
相關文章
- 【Java】可變引數Java
- Java方法05:可變引數Java
- Java - 可變引數的使用Java
- 【重學Java】可變引數Java
- Java的方法可變長引數Java
- 教你認識Java 可變引數Java
- Java方法04:命令列傳遞引數、可變引數Java命令列
- Java 的可變引數與 Collections 類Java
- java基礎(九) 可變引數列表介紹Java
- java 之泛型與可變引數詳解Java泛型
- go-可變引數Go
- 可變引數例項
- 可變引數va_list
- c++可變模板引數C++
- Python可變引數*args和**kwargsPython
- Go函式接收可變引數Go函式
- C++逆向 可變引數HookC++Hook
- C++11 可變引數模板C++
- 遞迴函式,可變引數列表遞迴函式
- C語言可變引數詳解C語言
- 淺談C#可變引數paramsC#
- PHP 函式可變數量的引數列表PHP函式變數
- python疑問5:位置引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數區別Python
- golang學習之路之函式可變引數Golang函式
- C++ 可變引數模板遞迴展開C++遞迴
- C語言怎麼實現可變引數C語言
- Swift 呼叫 Objective-C 的可變引數函式SwiftObject函式
- Python 中的可變引數: 什麼是*args和**kwargs?Python
- 自己實現一個簡單可變引數函式函式
- php函式之如何用預設引數和可變長度引數方式傳遞?PHP函式
- 五分鐘學Java:可變引數究竟是怎麼一回事?Java
- Bash變數和引數變數
- python變數和引數Python變數
- 通過String的不變性案例分析Java變數的可變性Java變數
- 一文搞清楚Java中的方法、常量、變數、引數Java變數
- TypeScript 函式可選引數和預設引數TypeScript函式
- 可變資料型別不能作為python函式的引數資料型別Python函式
- C++反射機制:可變引數模板實現C++反射C++反射
- Java(三)引數Java