Scala之视图边界
来源:互联网 发布:怎么下载淘宝号 编辑:程序博客网 时间:2024/05/29 16:39
/*视图边界 A <% B左边的类型是右边类型或者是其子类。如果不是,左边类型会隐士转换为右边的类型(前提是隐式转换的方法已经具备) */class Person(var name:String){ def sayHello = println("hello my name is "+name); def makeFirends(p:Person): Unit ={ sayHello p.sayHello }}class Student(name:String) extends Person(name)class Dog(val name:String)class Party[ T <% Person](p1:Person,p2:Person){ p1.makeFirends(p2)}object Test{ implicit def dog2Person(obj:Object):Person={ if(obj.getClass == classOf[Dog]){ val dog = obj.asInstanceOf[Dog] new Person(dog.name) }else{ None } } def main(args: Array[String]): Unit = { val chenxiang = new Student("chenxiang") val xiaoyu = new Student("xiaoyu") chenxiang.makeFirends(xiaoyu) val erlangshen = new Student("erlangshen") val xiaotianquan = new Dog("xiaotianquan") val p=new Party[Person](xiaotianquan,erlangshen) }}
阅读全文
0 0
- Scala之视图边界
- 一步步学spark之一scala高级特性中Lower bounds(下界)与Upper bounds(上界),View bounds(视图边界)3.7
- 模式识别之边界判决
- 微服务踩坑之边界
- 【Scala】Scala之Objec
- 【Scala】Scala之Objec
- iOS10 UI教程视图的边界与视图的框架
- Scala学习笔记--视图界定
- Scala 数据类型的协变、逆变、上边界、下边界
- 跨越边界: Lisp 之美
- 跨越边界: Lisp 之美
- 跨越边界: Lisp 之美
- 正则之\b单词边界
- Android之无边界意图
- Java swing 之边界布局
- UIDynamic之重力+碰撞+边界
- opencv之边界扩展copyMakeBorder
- java之JFrame边界布局
- Android 6.0权限笔记
- Mezzanine多site管理问题
- 【LuaWithC++】Lua的基础
- Unity3D
- C++ 模板(1) 介绍与使用方法
- Scala之视图边界
- SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
- 查询系统下的所有表视图
- 如何使用dedecms的图集模型?
- 抽奖
- dhcp服务器简单指南
- python字符串
- Atom 编辑器 设置.vue 文件
- java