摘要:根據(jù)上面這些原則,一個簡單的例子如下,省略了和可以輸入任何及子類的對象能確定返回的對象一定是或父類的對象只能確定返回的對象一定是選擇限定通配符時的快速判斷方法參考
當使用 super MyClass> 的時候,表明未知類的繼承結(jié)構(gòu)處于 Object 和 MyClass 之間,這時
編譯器只能確定任何返回該未知類型的方法,返回的變量都是 Object 的子類,所以返回的類型就確定為 Object,比如 getter 方法
使用該未知類型作為參數(shù)的方法,該參數(shù)一定是 MyClass 的父類,所以可以傳遞 MyClass 及其子類進去,比如 setter 方法
而使用 extends MyClass> 的時候,未知類型一定是 MyClass 的子類,但向下延伸到無窮盡,無法判斷
所以返回未知類型的方法的返回類型有一個上界,就是 MyClass,即返回類型確定為 MyClass
但是使用未知類型的方法,因為向下繼承無限延伸,無法判斷下界,所以不能使用該方法,比如 setter(可以 set(null))
使用 > 的時候,可以當作 extends Object>,即上界是 Object,可以使用 getter 方法,不可以使用 setter 方法。
根據(jù)上面這些原則,一個簡單的例子如下:
@Data // lombok,省略了 getter 和 setter class Holder{ private T t; public void testSetter(Holder super MyClass> holder, U u) { holder.setT(u); // 可以輸入任何 MyClass 及子類的對象 holder.setT(null); } public void testGetter1(Holder extends MyClass> 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
摘要:一個人的氣質(zhì)里有走過的路讀過的書愛過的人又經(jīng)歷了哪些故事呢引子一部高清電影秒秒鐘就能下載下來遠程游戲再也不會有卡頓和延遲的感覺了依托也出現(xiàn)了一系列的新東西,比如,車聯(lián)網(wǎng)自動駕駛遠程控制等等那從哪來的呢她經(jīng)歷了怎樣的故事才走到如今的樣子本期將一個人的氣質(zhì)里有走過的路、讀過的書、愛過的人5G 又經(jīng)歷了哪些故事呢?引子一部高清電影 秒秒鐘 就能下載下來遠程游戲再也不會有卡頓和延遲的感覺了依托 5G...
摘要:近幾年,深度學習高速發(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ò)類型之間...
摘要:例如改成例如改成以上兩種開發(fā)方式都可以結(jié)合原生平臺打包成獨立應用。 繼上一篇一張腦圖看懂BUI Webapp移動快速開發(fā)框架【上】--框架與工具、資源 大綱 在線查看大綱 思路更佳清晰 1. 框架設(shè)計 框架介紹 簡介 BUI 是用來快速構(gòu)建界面交互的UI交互框架, 專注webapp開發(fā), 開發(fā)者只需關(guān)注業(yè)務(wù)的開發(fā), 界面的布局及交互交給BUI, 開發(fā)出來的應用, 可以嵌入平臺 ( Li...
閱讀 4105·2023-04-26 01:48
閱讀 3272·2021-10-13 09:40
閱讀 1749·2021-09-26 09:55
閱讀 3643·2021-08-12 13:23
閱讀 1801·2021-07-25 21:37
閱讀 3438·2019-08-30 15:53
閱讀 1403·2019-08-29 14:16
閱讀 1403·2019-08-29 12:59