91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Java中myMethod的精確性

發布時間:2021-11-20 14:28:03 來源:億速云 閱讀:446 作者:柒染 欄目:大數據

今天就跟大家聊聊有關如何理解Java中myMethod的精確性,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

在抖音上看到一道題,覺得挺有意思,以前也沒仔細琢磨過,在這里跟大家分享一下。

public class TestObjectString {
    public void myMethod(String str){
        System.out.println("String");
    }
    public void myMethod(Object obj){
        System.out.println("Object");
    }

    public static void main(String[] args) {
        TestObjectString t =new TestObjectString();
            t.myMethod(null);
    }
}

咋一看,傳遞給方法的參數是一個空的對象引用,因此,初看起來,該程序好像應該調用參數類型為Object 的重載版本,

并且將打印出Object。另一方面,String也是引用類型,因此null 也可以應用于類型為String的重載版本。

你由此可能會得出結論:這個調用是模棱兩可的,該程序應該不能編譯。如果你試著去運行該程序,

就會發現這些直觀感覺都是不對的:該程序打印的是String。
ava 的重載解析過程是以兩階段運行的。第一階段選取所有可獲得并且可應用的方法或構造器。第二階段在第一階段選取的方法或構造器中

選取最精確的一個。如果一個方法或構造器可以接受傳遞給另一個方法或構造器的任何參數,那么我們就說第一個方法比第二個方法缺乏精確性。

在我們的程序中,兩個方法都是可獲得并且可應用的。方法構造器myMethod(Object)可以接受任何傳遞給myMethod(String)的參數,

因此myMethod(Object)相對缺乏精確性。(每一個String都是一個Object,但是每一個Object 并不一定是一個String。)因此,

最精確的方法就是myMethod(String),這也就解釋了為什么程序會產生這樣的輸出。如何想輸出Object 你可以這樣調用myMethod((Object)null).

看完上述內容,你們對如何理解Java中myMethod的精確性有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和龙市| 西和县| 大田县| 石景山区| 江陵县| 江口县| 安丘市| 咸丰县| 临汾市| 堆龙德庆县| 青冈县| 礼泉县| 敖汉旗| 海晏县| 肥城市| 西乌珠穆沁旗| 香河县| 徐州市| 云浮市| 南和县| 松溪县| 文山县| 达尔| 玛沁县| 乃东县| 连平县| 竹溪县| 大石桥市| 黎平县| 英德市| 沂水县| 巴彦淖尔市| 射阳县| 屯门区| 贡觉县| 丰城市| 壶关县| 鹤庆县| 崇礼县| 江达县| 金寨县|