java語言中的varargs
阿新 • • 發佈:2017-09-11
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 publicvoid 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
結論:
- 如果不傳參數,那麽形參的值是長度為0的數組。
- 如果傳入null,那麽形參的值是null,但是編譯時會有警告提示。
java語言中的varargs