zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    三十二、恢复单库单表
    三十一、XBK备份
    三十、分库分表备份脚本
    二十九、mysqldump恢复案例
    二十八、mysqldump备份
    二十七、备份介绍
    二十六:慢日志分析
    二十五、二进制日志之GTID模式
    Trie树
    AC自动机
  • 原文地址:https://www.cnblogs.com/zzq-include/p/8625094.html
Copyright © 2011-2022 走看看