scala 泛型

泛型的说明:泛型类指可以接受类型参数的类,泛型类在集合类中被广泛使用
与Java不同,定义泛型类使用“[]”

泛型方法

import scala.collection.mutable.ListBuffer

class MyTt {
  //泛型方法
  def abc[T](t:T)={
    val list1:ListBuffer[T]=ListBuffer[T]()
    list1
  }
}

object Test{
  def main(args: Array[String]): Unit = {
    val tt = new MyTt
    //当传的是String类型时ListBuffer就是String类型
    val res = tt.abc("ss")
    println(res.isInstanceOf[ListBuffer[String]])//true
  }
}

当泛型定义在方法上时就是泛型方法

泛型类

//泛型类
class MyTt1[T]{
  def abc(t:T)={
    println(t.isInstanceOf[String])
  }
}
object Test1{
  def main(args: Array[String]): Unit = {
    val tt = new MyTt1[Int]
    val tt1 = new MyTt1[String]
    //只能传Int类型的数值
    tt.abc(2)//false
    //只能传String类型的数值
    tt1.abc("ss")//true
  }
}

上界与下界

scala中上界
在 scala 里表示某个类型是 A 类型的子类型,也称上界或上限,使用 <: 关键字,语法如下:
[T <: A]

scala中下界
在 scala 的下界或下限,使用 >: 关键字,语法如下:
[T >: A]
class Father { def read()={}}
class Son extends Father{}

class MyTt2{
  //T是Father的类或子类,上界是Father
  def abc[T<:Father](t:T)={
    println("成功")
  }

  //下界可以传入任意类型,没什么意义
  def abcd[T>:Object](t:T)={
    println("成功1")
  }
}
object Mytest{
  def main(args: Array[String]): Unit = {
    val tt = new MyTt2
    tt.abc(new Father)
    tt.abcd(new Father)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值