1. 程式人生 > >java語言中的varargs

java語言中的varargs

private length string pre out rar class style system

java語言中的varargs允許調用者傳遞數量不定的參數,並傳入的數量不定的實參轉化為數組形式的形參。

那麽不傳遞任何參數,或者傳入null時,形參的值是什麽呢?下面是測試代碼和運行結果:

 1     private void test1(int... args) {
 2         if (args != null) {
 3             System.out.println("[test1] args.length = " + args.length);
 4         } else {
 5             System.out.println("[test1] args is null");
6 } 7 } 8 9 private void test2(String... args) { 10 if (args != null) { 11 System.out.println("[test2] args.length = " + args.length); 12 } else { 13 System.out.println("[test2] args is null"); 14 } 15 } 16 17 public
void static main(String[] args) { 18 test1(); 19 test1(null); 20 test1(1); 21 test1(1,2); 22 23 test2(); 24 test2(null); 25 test2("1"); 26 test2("a", "b"); 27 }

[test1] args.length = 0
[test1] args is null
[test1] args.length = 1

[test1] args.length = 2
[test2] args.length = 0
[test2] args is null
[test2] args.length = 1
[test2] args.length = 2

結論:

  1. 如果不傳參數,那麽形參的值是長度為0的數組。
  2. 如果傳入null,那麽形參的值是null,但是編譯時會有警告提示。

java語言中的varargs