泛型

1.用于指定方法或类可以接受任意类型参数

2.不可变

C[T]:无论AB是什么关系,C[A]C[B]没有从属关系

3.协变+

C[+T]:如果AB的子类,那么C[A]C[B]的子

4.逆变-

C[-T]:如果AB的子类,那么C[B]C[A]的子

5.上界

Java 里表示某个类型是 A 类型的子类型<T extends A>   , 或用通配符的形式:<? extends A>

scala 表示某个类型是 A 类型的子类型,[T <: A]   , 或用通配符:[_ <: A]

6.下界

1)对于下界以传入任意类型

2)父类的还是父类处理,子类的按照本身

3)本身无关的,一律按照Object

4)就是下界,可以随便传,只是处理是方式不一

5)能使用上界的思路来类推下界的含义

7.视图限定

<% 的意思是“view bounds”(视界),它比<:适用的范围更广,除了所有的子类型,还允许隐式转换类。同时,也支持上界使用的各种方式

8.上下文限定

上下文界定+隐式参数

implicit val personComparetor = new Ordering[Person] {
    override def compare(p1: Person, p2: Person): Int = 
       p1.age - p2.age
  }
// 会发生隐式转换,获取到隐式值 personComparetor
val comparetor = implicitly[Ordering[T]]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值