博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
隐式转换的一点想法
阅读量:4680 次
发布时间:2019-06-09

本文共 873 字,大约阅读时间需要 2 分钟。

object App {  implicit def toM2(m1:M1): M2 ={    println("m1 to m2")    new M2()  }  class M1 {    def method1(): Unit ={      println("invoke method 1")    }  }  class M2() {    def method2(): Unit ={      println("invoke method 2")    }  }  def main(args: Array[String]) {   val m1 = new M1    //m1本身有method1的方法,一次不需要调用隐式转换    //输出  println("invoke method 1")    m1.method1()    //m1不存在method2 方法,需要在作用域中寻找隐式转换,正好发现有一个能把m1转换成m2,恰好m2有method方法,那么先执行转换方法,再执行method2    //输出  println("m1 to m2") println("invoke method 2")    m1.method2()    //m1本身有method1的方法,一次不需要调用隐式转换    //输出  println("invoke method 1")    m1.method1()    //m1不存在method2 方法,需要在作用域中寻找隐式转换,正好发现有一个能把m1转换成m2,恰好m2有method2方法,那么先执行转换方法,再执行method2    //输出  println("m1 to m2") println("invoke method 2")    //需要注意的是,这次又执行了转换方法,这意味着每次执行的独立性.    m1.method2()  }}

 

转载于:https://www.cnblogs.com/luckuan/p/5228356.html

你可能感兴趣的文章
Windows Live Writer 代码插件测试
查看>>
边工作边刷题:70天一遍leetcode: day 32-1
查看>>
BZOJ4725: [POI2017]Reprezentacje ró?nicowe
查看>>
Sql查询语句过滤重复的数据
查看>>
mac 上iterm终端连接Linux服务后 中文为乱码问题
查看>>
MyBatis 【增删改查】
查看>>
重新编译jdk,使其带有调试信息
查看>>
python-map的用法
查看>>
添加一条公告并标记为已读
查看>>
redisCheckMem脚本
查看>>
CORS简介
查看>>
codeforces 1148E- Earth Wind and Fire
查看>>
fastjson转换json时,碰到的那些首字母大小写转换的坑!(转)
查看>>
Python3.6+pyinstaller+Django
查看>>
PowerDesigner使用教程
查看>>
ORACLE安装入门篇OEL5.4安装ORACLE11g
查看>>
聚类算法学习笔记(一)——基础
查看>>
Node.js 调用 restful webservice
查看>>
DirectX11--HR宏关于dxerr库的替代方案
查看>>
NOI 2005 瑰丽华尔兹(三维DP + 单调队列优化)
查看>>