成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

一圖看懂Java泛型通配符

Sleepy / 1496人閱讀

摘要:根據(jù)上面這些原則,一個簡單的例子如下,省略了和可以輸入任何及子類的對象能確定返回的對象一定是或父類的對象只能確定返回的對象一定是選擇限定通配符時的快速判斷方法參考

當使用 的時候,表明未知類的繼承結(jié)構(gòu)處于 ObjectMyClass 之間,這時

編譯器只能確定任何返回該未知類型的方法,返回的變量都是 Object 的子類,所以返回的類型就確定為 Object,比如 getter 方法

使用該未知類型作為參數(shù)的方法,該參數(shù)一定是 MyClass 的父類,所以可以傳遞 MyClass 及其子類進去,比如 setter 方法

而使用 的時候,未知類型一定是 MyClass 的子類,但向下延伸到無窮盡,無法判斷

所以返回未知類型的方法的返回類型有一個上界,就是 MyClass,即返回類型確定為 MyClass

但是使用未知類型的方法,因為向下繼承無限延伸,無法判斷下界,所以不能使用該方法,比如 setter(可以 set(null))

使用 的時候,可以當作 ,即上界是 Object,可以使用 getter 方法,不可以使用 setter 方法。

根據(jù)上面這些原則,一個簡單的例子如下:

@Data // lombok,省略了 getter 和 setter
class Holder{
    private T t;

    public  void testSetter(Holder holder, U u) {
        holder.setT(u); // 可以輸入任何 MyClass 及子類的對象
        holder.setT(null);
    }

    public  void testGetter1(Holder holder) {
        MyClass obj = holder.getT(); // 能確定返回的對象一定是 MyClass 或父類的對象
    }

    public void testGetter2(Holder holder) {
        Object obj = holder.getT(); // 只能確定返回的對象一定是 Object
    }
}

class MyClass{}

選擇限定通配符時的快速判斷方法:

get-put principle:
Use an extends wildcard when you only get values out of a structure, use a super wildcard when you only put values into a structure, and don"t use a wildcard when you do both.

參考:
https://www.ibm.com/developerworks/java/library/j-jtp07018/index.html

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68547.html

相關(guān)文章

  • 【阿里云北京峰會】一圖看懂阿里云彈性裸金屬服務(wù)器如何幫助企業(yè)遷移上云

    長按圖片識別二維碼,立即咨詢阿里云上云專家!

    import. 評論0 收藏0
  • CloudBest:科普 | 一圖看懂 5G 從哪來的

    摘要:一個人的氣質(zhì)里有走過的路讀過的書愛過的人又經(jīng)歷了哪些故事呢引子一部高清電影秒秒鐘就能下載下來遠程游戲再也不會有卡頓和延遲的感覺了依托也出現(xiàn)了一系列的新東西,比如,車聯(lián)網(wǎng)自動駕駛遠程控制等等那從哪來的呢她經(jīng)歷了怎樣的故事才走到如今的樣子本期將一個人的氣質(zhì)里有走過的路、讀過的書、愛過的人5G 又經(jīng)歷了哪些故事呢?引子一部高清電影 秒秒鐘 就能下載下來遠程游戲再也不會有卡頓和延遲的感覺了依托 5G...

    Tecode 評論0 收藏0
  • 追根溯源!圖看盡深度學習架構(gòu)譜系

    摘要:近幾年,深度學習高速發(fā)展,出現(xiàn)了大量的新模型與架構(gòu),以至于我們無法理清網(wǎng)絡(luò)類型之間的關(guān)系。是由深度學習先驅(qū)等人提出的新一代神經(jīng)網(wǎng)絡(luò)形式,旨在修正反向傳播機制。當多個預測一致時本論文使用動態(tài)路由使預測一致,更高級別的將變得活躍。 近幾年,深度學習高速發(fā)展,出現(xiàn)了大量的新模型與架構(gòu),以至于我們無法理清網(wǎng)絡(luò)類型之間的關(guān)系。在這篇文章中,香港科技大學(HKUST)助理教授金成勳總結(jié)了深度網(wǎng)絡(luò)類型之間...

    tinylcy 評論0 收藏0
  • 一張腦圖看懂BUI Webapp移動快速開發(fā)框架【下】--快速入門指引

    摘要:例如改成例如改成以上兩種開發(fā)方式都可以結(jié)合原生平臺打包成獨立應用。 繼上一篇一張腦圖看懂BUI Webapp移動快速開發(fā)框架【上】--框架與工具、資源 大綱 在線查看大綱 思路更佳清晰 1. 框架設(shè)計 框架介紹 簡介 BUI 是用來快速構(gòu)建界面交互的UI交互框架, 專注webapp開發(fā), 開發(fā)者只需關(guān)注業(yè)務(wù)的開發(fā), 界面的布局及交互交給BUI, 開發(fā)出來的應用, 可以嵌入平臺 ( Li...

    hzx 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<