码迷,mamicode.com
首页 > 其他好文 > 详细

scala中隐式转换之隐式转换调用类中本不存在的方法

时间:2017-12-07 20:53:09      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:created   type   def   xiaomi   范围   int   bsp   cal   test   

/**
  * Created by root
  * Description :  隐式转换调用类中本不存在的方法
  */
class Person(name : String){
  def getPersonName = println("name = " + name)
}

object Type2Type{
  implicit def type2(a : ImplicitTest2) = new Person("xiaoming")
}

class ImplicitTest2

object ImplicitTest2 {
  import  Type2Type._
  def main(args: Array[String]): Unit = {
    // 通过隐式转换,使对象能调用类中本不存在的方法
    val test = new ImplicitTest2
    test.getPersonName   // 编译器发现test调用的方法不存在,此时编译器就会在作用域范围内查找能使其编译通过的隐式视图,
                        //  找到type2方法后,编译器通过隐式转换将对象转换成具有这个方法的对象,之后调用getPersonName方法
  }
}

 

scala中隐式转换之隐式转换调用类中本不存在的方法

标签:created   type   def   xiaomi   范围   int   bsp   cal   test   

原文地址:http://www.cnblogs.com/xubiao/p/8000368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!