image
假設(shè)一個(gè)類既有save保存方法,也有fetch讀取方法,如果沒有泛型限定,當(dāng)IBox<Number>指向IBox<Int>的時(shí)候,首先IBox<Number>存儲(chǔ)(不會(huì)報(bào)錯(cuò)),再由IBox<Int>讀取,這樣會(huì)導(dǎo)致存儲(chǔ)的時(shí)候不會(huì)報(bào)錯(cuò),但是讀取的時(shí)候,類型轉(zhuǎn)換會(huì)報(bào)錯(cuò)。(編譯器已經(jīng)不允許上述紅框內(nèi)的賦值)
那么如何允許這樣賦值呢?首先如果只有存儲(chǔ),使用in
image
如果只有獲取數(shù)據(jù),使用out
image
那么為什么要這么傳遞紅色方框的引用呢?