Java變長變量(類似ES6的剩余參數)應用例子
阿新 • • 發佈:2018-09-15
arrays類 list jdk1 t對象 玩意兒 java ava 工具 lis
今天看代碼的時候,看到一處如下:
第三個參數提示:...properties的寫法有點類似之前看過的ES6語法的剩余參數,不知道java也有這玩意兒。搜了下,是jdk1.5的新特性:變長變量。有點孤陋!
百度知道解釋:
其實這種定義就類似一個數據的定義,可以不用給它的長度加以限制,可以傳入任意多個參數。
比用數據更靈活一些,不會出現一些數組越界等的異常。
如:
getType(String ...values);
調用時,可以getType("a","b","c")等,參數個數沒有限制,類型是前面規定的String類型。
繼續看代碼的調用,首先是跟蹤Sort()對像的構造器。Sort()是org.springframework.data.domain包下的一個類,
實現了兩個接口,Sort.Order應該就是Sort類裏的一個靜態內部類了。不扯了,直接看關鍵位置的構造器:
發現剩余參數變量(變長變量)傳進來,主要用於構造ArrayList動態數組對象。搜了下數組工具類asList()的用法,將一個數組轉化為一個List對象,
這個方法會返回一個ArrayList類型的對象, 這個ArrayList類並非java.util.ArrayList類,而是Arrays類的靜態內部類!用這個對象對列表進行添加刪除更新操作,
就會報UnsupportedOperationException異常。
總結就是,變成變量應該主要用來轉為數組對象吧。
Java變長變量(類似ES6的剩余參數)應用例子