真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何理解Java中myMethod的精確性

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

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供芝罘網(wǎng)站建設(shè)、芝罘做網(wǎng)站、芝罘網(wǎng)站設(shè)計、芝罘網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、芝罘企業(yè)網(wǎng)站模板建站服務(wù),十載芝罘做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

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

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);
    }
}

咋一看,傳遞給方法的參數(shù)是一個空的對象引用,因此,初看起來,該程序好像應(yīng)該調(diào)用參數(shù)類型為Object 的重載版本,

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

你由此可能會得出結(jié)論:這個調(diào)用是模棱兩可的,該程序應(yīng)該不能編譯。如果你試著去運行該程序,

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

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

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

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

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

看完上述內(nèi)容,你們對如何理解Java中myMethod的精確性有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)站標題:如何理解Java中myMethod的精確性
鏈接地址:http://weahome.cn/article/pogjoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部