image
假設一個類既有save保存方法,也有fetch讀取方法,如果沒有泛型限定,當IBox<Number>指向IBox<Int>的時候,首先IBox<Number>存儲(不會報錯),再由IBox<Int>讀取,這樣會導致存儲的時候不會報錯,但是讀取的時候,類型轉換會報錯。(編譯器已經不允許上述紅框內的賦值)
那么如何允許這樣賦值呢?首先如果只有存儲,使用in
image
如果只有獲取數據,使用out
image
那么為什么要這么傳遞紅色方框的引用呢?
假設一個類既有save保存方法,也有fetch讀取方法,如果沒有泛型限定,當IBox<Number>指向IBox<Int>的時候,首先IBox<Number>存儲(不會報錯),再由IBox<Int>讀取,這樣會導致存儲的時候不會報錯,但是讀取的時候,類型轉換會報錯。(編譯器已經不允許上述紅框內的賦值)
那么如何允許這樣賦值呢?首先如果只有存儲,使用in
如果只有獲取數據,使用out
那么為什么要這么傳遞紅色方框的引用呢?