zoukankan      html  css  js  c++  java
  • 隐式转换的一点想法

    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()
    
    
      }
    }
  • 相关阅读:
    Vue前端工程化
    Vue前端路由
    Vue前后端路由
    Vue组件化开发
    Vue基础
    订单列表和数据列表(七)
    商品列表和添加商品(六)
    商品分类管理和参数管理(五)
    给独立搭建的博客启用https的过程
    使用Gitalk实现静态页面评论的功能
  • 原文地址:https://www.cnblogs.com/luckuan/p/5228356.html
Copyright © 2011-2022 走看看