Java可變長參數(shù)使用的注意事項

Java可變長參數(shù)使用的注意事項

北大青鳥長沙麓谷校區(qū)      2022-04-10 14:28:01     1

Java可變長參數(shù)使用的注意事項,如果要調(diào)用的方法可以和兩個可變參數(shù)匹配,則出現(xiàn)錯誤,例如下面的代碼:packagecom;//這里使用了靜態(tài)導(dǎo)入importstaticjava.lang

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細(xì)介紹


    如果要調(diào)用的方法可以和兩個可變參數(shù)匹配,則出現(xiàn)錯誤,例如下面的代碼:


    packagecom;


    //這里使用了靜態(tài)導(dǎo)入


    importstaticjava.lang.System.out;


    publicclassVarArgsTest1{


    publicvoidprint(String...args){


    for(inti=0;i<args.length;i++){


    out.println(args[i]);


    }


    }


    publicvoidprint(Stringtest,String...args){


    out.println("----------");


    }


    publicstaticvoidmain(String[]args){


    VarArgsTest1test=newVarArgsTest1();


    test.print("hello");


    test.print("hello","alexia");


    }


    }


    對于上面的代碼,main方法中的兩個調(diào)用都不能編譯通過,因?yàn)榫幾g器不知道該選哪個方法調(diào)用,如下所示:



    3.3一個方法只能有一個可變長參數(shù),并且這個可變長參數(shù)必須是該方法的最后一個參數(shù)


    以下兩種方法定義都是錯誤的。


    publicvoidtest(String...strings,ArrayListlist){


    }


    publicvoidtest(String...strings,ArrayList...list){


    }


    4.可變長參數(shù)的使用規(guī)范


    4.1避免帶有可變長參數(shù)的方法重載:如3.1中,編譯器雖然知道怎么調(diào)用,但人容易陷入調(diào)用的陷阱及誤區(qū)


    4.2別讓null值和空值威脅到變長方法,如3.2中所示,為了說明null值的調(diào)用,重新給出一個例子:


    packagecom;publicclassVarArgsTest1{


    publicvoidprint(Stringtest,Integer...is){


    }


    publicvoidprint(Stringtest,String...args){


    }


    publicstaticvoidmain(String[]args){


    VarArgsTest1test=newVarArgsTest1();


    test.print("hello");


    test.print("hello",null);


    }


    }


    這時會發(fā)現(xiàn)兩個調(diào)用編譯都不通過:



 以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對“Java可變長參數(shù)使用的注意事項”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。


培訓(xùn)啦提醒您:交易時請核實(shí)對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。