标签:
DT大数据梦工厂 第81讲
http://yun.baidu.com/s/1uLFye
本节王老师讲了list的逆变,协变,下界。
abstaract class Big_Data
class Hadoop extends Big_Data//一种 类型
class Spark extends Big_Data//另一种类型
object List_Constructor _Internals{
def main(args:Array[String]){
val hadoop=new Hadoop::Nil//一个Hadoop的list
val big_Data=new Spark::hadoop//一个既有Hadoop,又有Spark的list,
//这是因为hadoop可以追加Spark,因为::方法的参数是逆变点,
//如果按照正常的放到上界,那么如果Hadoop是Big_Data的子类,
//那么List[Hadoop]就应该是List[Big_Data]的父类
//但事实上我们期望List[Big_Data]是List[Hadoop]的父类(协变的)
//所以让他存在下界[B>:A]而不是[A<:B],这样就如我们所愿了
}
}
标签:
原文地址:http://www.cnblogs.com/trgaaaaa/p/4714068.html