第二十八條 利用有限制萬用字元來提公升API的靈活性

2022-03-26 15:14:45 字數 550 閱讀 9437

如第二十五條所述,引數化型別是不可變的。型別type1和type2而言,不管type1與type2的關係,list既不是list的子型別,也不是也不是它的超型別。那麼按理來說我們宣告了 乙個list的變數,應該只能把object型別的物件放入其中,但是我們知道可以把object的子類放入其中。

同樣我們宣告了乙個list的變數,不僅僅可以把number型別的物件放入其中,也可以把integer和long等型別的物件放入其中。

之所有可以這樣做,是因為有限制的萬用字元給我們帶來了便利。

為了獲得最大限度的靈活性,要在表示生產者或者消費者的輸入引數上使用萬用字元型別。如果某個引數既是生產社,又是消費者,那麼萬用字元型別對你就沒有什麼

好處了:因為你需要的是嚴格的型別匹配,這是不用任何萬用字元而得到的。

pecs 表示 producer-extends , consumer-super

不要用萬用字元型別作為放回型別,也就是不要用<? extends  e>等這樣的型別,而是使用。因為呼叫乙個方法,我們總是希望得到乙個具體的型別結果,

而不是讓客戶端程式員去猜應該返回乙個什麼樣型別的結果。

第二十八天

1 建立乙個名稱為itcast的資料庫。create database itcast 2 設計資料表tb student的字段結構,欄位有id 學號 name 姓名 age 年齡 enrolmentdate 入學時間 並選擇適合的資料型別。tb student資料表的字段結構如下表所示 欄位名 型別...

蛻變,第二十八天

1 什麼是包 包是模組的一種形式,包的本質就是乙個含有 init py檔案的資料夾 2.為什麼要有包 因為如果我們要把我們寫的一大堆功能分類處理,並且數量眾多,我們需要進行分檔案儲存,則需要用到包的概念 3 如何用包 匯入包就是在包下的 init py import from import 注意的問...

冥想第二十八天

今天5點多就不困了,天氣有點冷,醒了。告訴自己,都是正常的。確實是正常的。都是人最直觀的感受。改變固有思維,以前會聯想很多造成的,讓自己越來越膽小。可這一切都是那麼的正常。固定的生物鐘也改起了。一切放輕鬆。不怪以前的自己,畢竟自己一天比一天好。多學習別人身上的優點,不狹隘。不能因為環境冷了,而埋怨自...