改善Java程序建議5

建議5:別讓null值和空值威脅到變長方法

public class SuggestFive{
    public void methodA(String str,Integer... is){
    }

    public void methodA(String str,String... strs){
    }

    public static void main(String[] args) {
            SuggestFive suggestFive= new SuggestFive();
            suggestFive.methodA("China", 0);
            suggestFive.methodA("China", "People");
            suggestFive.methodA("China");
            suggestFive.methodA("China",null);
    }
}

上面的代碼有兩處編譯不過,suggestFive.methodA("China")和suggestFive.methodA("China",null)。提示方法模糊不清,編譯器不知道調用哪一個。
對于methodA("China")方法,根據實參"China"(String類型),兩個方法都符合形參格式,編譯器不知道該調用哪一個,于是報錯。
對于methodA("China",null)方法,直接量null是沒有類型的,雖然兩個methodA方法都符合調用請求,但是不知道調用哪一個,于是報錯了。
應該如下修改:

String[] strs = null;
suggestFive.methodA("China", strs);

也就是說讓編譯器知道這個null值是String類型的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,518評論 0 3
  • fable n.傳說;寓言,童話;無稽之談;人人談論的話題v.講故事,編寓言;虛構,杜撰;煞有介事地講 bees ...
    Ghosting閱讀 614評論 0 0
  • Go2Shell 一個可以快速在當前目錄打開Shell的工具,小巧,非常好用! 如何下載Go2Shell 在app...
    時光記憶forever閱讀 1,051評論 0 0