Scala 范型

  • 范型的作用主要是对函数和类构造的输入参数进行类型限制
package com.abc

// 范型
object TDemo {
  def main(args: Array[String]): Unit = {
    // 1、下限<:
//    fun(new A) // 报错
    fun(new C) // 正常
    // 2、上限>:(所有类都可以)
    fun1(new A) // 正常
    fun1(new C) // 正常
    // 3、协变+
    val t:Test[C] = new Test[C](new C)
    var t0:Test[B] = t
    // 4、逆变-
    val t1:Test1[A] = new Test1[A](new A)
    val t11:Test1[B] = t1
  }
  // 限定函数参数类型下限(B以及子类)<:
  def fun[T <: B](arg : T): Unit ={

  }
  // 限定函数参数类型上限(任意类)>:
  def fun1[T >: B](arg : T): Unit ={

  }
  // 限定类构造函数输入类型包含其子类
  class Test[+T](arg: T){

  }
  // 限定类构造函数输入类型包含其父类
  class Test1[-T](arg: T){

  }
  class A{

  }
  class B extends A{

  }
  class C extends B{

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值