前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
AVA中類型后面跟三個點是什么來的。??
看代碼中那個三點,這樣做起到重載的作用,但這是什么意思???
class?Father??
{??
????public?void?foo(String...?s)??
????{??
????????System.out.println("Father:foo");??
?????????
????}??
?????public?void?bar(String?s)??
????{??
????????System.out.println("Father:bar");??
????}??
}??
class?Son?extends?Father??
{??
??????
????public?void?foo(String?s)??
????{??
????????System.out.println("Son:foo");??
????}??
?????
?????public?void?bar(String?s)??
????{??
????????System.out.println("Son:bar");??
????}??
}??
===============================================================??
不懂這句是什么意思?public?void?foo(String...?s)??
最佳答案??
?
可變數組參數。用...的話,傳參數時可傳可不傳,傳的話,可以是一個個并列地傳,也可以直接是一個數組。??
在方法里取時,s是一個數組,如果調用時什么都沒有傳,那么s的長度就是0。傳的時候傳了幾個,s的長度就是幾。??
還有,1.5以上才支持這個功能。???
寫的例子:??
public?class?Number3?{??
?public?static?void?main(String[]?args)?{??
??printString();??
??System.out.println("==========");??
??printString(new?String[]{"我","和","你"});??
??System.out.println("==========");??
??printString("我","和","你");??
?}??
?public?static?void?printString(String...?str){??
??if(str.length==0){??
???System.out.println("沒有傳參數。");??
??}??
??for?(int?i?=?0;?i?<?str.length;?i++)?{??
???System.out.println(str[i]);??
??}??
?}??
}??
================================================??
java中這種寫法是什么意思???
2011-4-6?16:12?提問者:g882?|?瀏覽次數:409次??
private?void?removeTempFiles(String...?fileNames)?{??
????????for?(String?fileName?:?fileNames)?{??
????????????try?{??
????????????????new?File(fileName).delete();??
????????????}?catch?(Exception?e)?{??
????????????}??
????????}??
????}??
其中,??String...?fileNames???代表什么意思???
2011-4-6?16:26?最佳答案??
類型后面三個點(String...),是從Java?5開始,Java語言對方法參數支持一種新寫法,叫?可變長度參數列表,其語法就是類型后跟...,表示此處接受的參數為0到多個Object類型的對象,或者是一個Object[]。?例如我們有一個方法叫做test(String...strings),那么你還可以寫方法test(),但你不能寫test(String[]?strings),這樣會出編譯錯誤,系統提示出現重復的方法。??
在使用的時候,對于test(String...strings),你可以直接用test()去調用,標示沒有參數,也可以用去test("aaa"),也可以用test(new?String[]{"aaa","bbb"})。??
另外如果既有test(String...strings)函數,又有test()函數,我們在調用test()時,會優先使用test()函數。只有當沒有test()函數式,我們調用test(),程序才會走test(String...strings)。??
例一:??
public?class?Ttest?{??
????//private?static?int?a;??
????public??static??void?test(int...?a){??
??????????????for(int?i=0;i
?????????????????????System.out.println(a[i]);??
??????????????}??
????}??
????public?static?void?main(String[]?args)?{??
????????Ttest.test(1,2);??
????}??
}??
例二:???
String...?excludeProperty表示不定參數,也就是調用這個方法的時候這里可以傳入多個String對象。??
?public?static?void?main(String[]?args)?{??
????????????//測試,傳入多個參數??
????????????test("hello",?"world",?"13sd",?"china",?"cum",?"ict");??
????????}??
????????public?static?void?test(String...?arguments)?{??
????????????for?(int?i?=?0;?i?<?arguments.length;?i++)?{??
????????????????System.out.println(arguments[i]);??
????????????}??
????????}?