• scala-泛型


    //实例化之后使用get方法必须传入相同类型的参数
    class A[T](x: T) {
      def get(x: T) {
        print(x)
      }
    }
    
    var a1 = new A(1)
    a1.get(1)
    
    //上边界泛型实现
    
    class Persion(name: String) {
      def prn = println("name:" + name)
    
      def get(p: Persion) {
        prn
        p.prn
      }
    }
    
    class Worker(name: String) extends Persion(name) {
      var get1 = println("函数")
    }
    
    def process[T <: Worker](p: T, p1: T) {
      //[T <: Worker]要求必须在worker自己以及子类中
      p.get(p1)
    }
    
    
    def process1[T <: Persion](p: T, p1: T) {
      //[T <: Persion]要求必须在Persion自己以及子类中
      p.get(p1)
    }
    
    def process3[T >: Persion](p: T) {
      //[T >: Persion]要求必须在Persion自己以及继承的父类中
      (p.asInstanceOf[Persion]).prn
      if (p.getClass == classOf[Persion]) {
        print("Persion!")
      } else if (p.getClass == classOf[Worker]) {
        print("Worker!")
      } else {
        print("未匹配!")
      }
    }
    
    var p1 = new Worker("abc")
    var p2 = new Worker("mnb")
    
    process(p1, p2)
    
    var p3 = new Persion("ab1c")
    var p4 = new Persion("mn1b")
    process1(p3, p4)
    
    var p5 = new Persion("a8899")
    var p6 = new Worker("a8899!!")
    process3(p5)
    process3(p6)
  • 相关阅读:
    Vue 获取dom元素中的自定义属性值
    php文件包含
    php数组运算符
    管理一组事物的状态
    php数据类型转换
    php函数
    PHP循环while do while循环
    php的流程控制 if elseif swich case for循环
    php的工作原理
    python算数、逻辑运算,位运算
  • 原文地址:https://www.cnblogs.com/zzq-include/p/8625094.html
Copyright © 2020-2023  润新知