假设一个类既有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
image如果只有获取数据,使用out
image那么为什么要这么传递红色方框的引用呢?
本文标题:kotlin泛型
本文链接:https://www.haomeiwen.com/subject/lcrfhdtx.html
网友评论