Scala之协变和逆变

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 04:52   603   0
package com.uplooking.bigdata.p4.generic

/**
* scala中的协变和逆变
* 协变:
* val list:List[Object] = List[String]("", "")
* 参数的泛型方向和等号左右整体的方向一致,称之为协变,
* scala默认不支持协变,只有在定义泛型参数的时候明确指定之后,才支持协变
* 在泛型T前面加上字符'+'
*/
class CovarianceAndContravarianceOps {
def main(args: Array[String]): Unit = {
// covarianceOps
contravarianceOps
}

def contravarianceOps: Unit = {
class Test[-T]//逆变

val t:Test[String] = new Test[Object]()


}

def covarianceOps: Unit = {
val list:List[Any] = List[String]("zhangsan", "lisi")

val mList:MyList[Any] = new MyList[String]()


}

class MyList[+T]

}
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP