1. //实例化之后使用get方法必须传入相同类型的参数
  2. class A[T](x: T) {
  3. def get(x: T) {
  4. print(x)
  5. }
  6. }
  7.  
  8. var a1 = new A(1)
  9. a1.get(1)
  10.  
  11. //上边界泛型实现
  12.  
  13. class Persion(name: String) {
  14. def prn = println("name:" + name)
  15.  
  16. def get(p: Persion) {
  17. prn
  18. p.prn
  19. }
  20. }
  21.  
  22. class Worker(name: String) extends Persion(name) {
  23. var get1 = println("函数")
  24. }
  25.  
  26. def process[T <: Worker](p: T, p1: T) {
  27. //[T <: Worker]要求必须在worker自己以及子类中
  28. p.get(p1)
  29. }
  30.  
  31. def process1[T <: Persion](p: T, p1: T) {
  32. //[T <: Persion]要求必须在Persion自己以及子类中
  33. p.get(p1)
  34. }
  35.  
  36. def process3[T >: Persion](p: T) {
  37. //[T >: Persion]要求必须在Persion自己以及继承的父类中
  38. (p.asInstanceOf[Persion]).prn
  39. if (p.getClass == classOf[Persion]) {
  40. print("Persion!")
  41. } else if (p.getClass == classOf[Worker]) {
  42. print("Worker!")
  43. } else {
  44. print("未匹配!")
  45. }
  46. }
  47.  
  48. var p1 = new Worker("abc")
  49. var p2 = new Worker("mnb")
  50.  
  51. process(p1, p2)
  52.  
  53. var p3 = new Persion("ab1c")
  54. var p4 = new Persion("mn1b")
  55. process1(p3, p4)
  56.  
  57. var p5 = new Persion("a8899")
  58. var p6 = new Worker("a8899!!")
  59. process3(p5)
  60. process3(p6)

scala-泛型的更多相关文章

  1. scala泛型

    package com.ming.test /** * scala泛型 * 类型参数测试 */ object TypeParamsTest { //泛型函数 def getMiddle[T](a:Ar ...

  2. Scala泛型详解

    在Scala中你可以使用类型参数来实现类和函数,这样的类和函数可以用于多种类型.比如Array[T] 你可以存放任意指定类型T的数据. 类.特质.函数都可以有类型参数:将类型参数放在名字后面用方括号括 ...

  3. Scala泛型[T]的使用

    package com.dtspark.scala.basics /** * 1,scala的类和方法.函数都可以是泛型. * * 2,关于对类型边界的限定分为上边界和下边界(对类进行限制) * 上边 ...

  4. 17. Scala泛型、上下界、视图界定、上下文界定

    17.1 泛型的基本介绍 17.1.1 基本介绍 1) 如果我们要求函数的参数可以接受任意类型,可以使用泛型,这个类型可以代表任意的数据类型 2) 例如List,在创建List时,可以传入整型.字符串 ...

  5. 一文详解scala泛型及类型限定

    今天知识星球球友,微信问浪尖了一个spark源码阅读中的类型限定问题.这个在spark源码很多处出现,所以今天浪尖就整理一下scala类型限定的内容.希望对大家有帮助. scala类型参数要点 1. ...

  6. Scala进阶之路-Scala中的泛型介绍

    Scala进阶之路-Scala中的泛型介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 通俗的讲,比如需要定义一个函数,函数的参数可以接受任意类型.我们不可能一一列举所有的参数类 ...

  7. Scala入门到精通——第十六节 泛型与注解

    本节主要内容 泛型(Generic Type)简单介绍 注解(Annotation)简单介绍 注解经常使用场景 1. 泛型(Generic Type)简单介绍 泛型用于指定方法或类能够接受随意类型參数 ...

  8. scala的泛型浅析

    1. scala泛型浅析 package com.dtspark.scala.basics /** * 1,scala的类和方法.函数都可以是泛型. * * 2,关于对类型边界的限定分为上边界和下边界 ...

  9. Scala 基础(十六):泛型、类型约束-上界(Upper Bounds)/下界(lower bounds)、视图界定(View bounds)、上下文界定(Context bounds)、协变、逆变和不变

    1 泛型 1)如果我们要求函数的参数可以接受任意类型.可以使用泛型,这个类型可以代表任意的数据类型. 2)例如 List,在创建 List 时,可以传入整型.字符串.浮点数等等任意类型.那是因为 Li ...

  10. Scala进阶之路-Scala中的Ordered--Ordering

    Scala进阶之路-Scala中的Ordered--Ordering 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   说道对象的比较,在Java中大家最熟悉不过的就是实现类本身实 ...

随机推荐

  1. java框架篇---hibernate(多对多)映射关系

    以学生和老师为例的来讲解多对多映射. 实体类: Student package cn.itcast.g_hbm_manyToMany; import java.util.HashSet; import ...

  2. 推荐几个Windows工具软件: Stickies - 桌面贴

    主页: http://www.zhornsoftware.co.uk/stickies/index.html Stickies work like Post-it notes for your PC. ...

  3. Go指南练习_斐波纳契闭包

    源地址 https://tour.go-zh.org/moretypes/26 一.题目描述 让我们用函数做些好玩的事情. 实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐 ...

  4. Java面向对象的基本概念(对象、封装、继承、多态、抽象、接口、泛型)

    对象:是一个自包含的实体,用一组可识别的特征和行为来标识. 类:具有相同的属性和功能的对象的抽象合集.(类关键字class,首字母大写). 实例:就是一个真实的对象. 实例化:创建对象的过程,关键字是 ...

  5. java+Quartz实现定时任务

    1.首先:导入quartz相关的jar包,这里我用的是maven构建的项目,pom.xml文件导入如下: <dependency> <groupId>org.quartz-sc ...

  6. iOS Xcode, 解决“Could not insert new outlet connection”的问题。

    在Xcode中,我们能够在StoryBoard编辑界面或者是xib编辑界面中通过"Control键+拖拽"的方式将某个界面元素和相应的代码文件连接起来,在代码文件里创建outlet ...

  7. Window应急响应(四):挖矿病毒

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...

  8. 【代码审计】XYHCMS V3.5任意文件读取漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  9. HttpWatch工具简介及使用技巧

    一 概述: HttpWatch强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功 ...

  10. day_6.16网络编程

    单线程服务器select版: select ---->最多1024个 poll ----->解决了套接字上限的问题----->轮询检测 关于 sys模块: 通过fd找套接字 协程: ...