1. 程式人生 > >scala中隱式轉換之隱式轉換調用類中本不存在的方法

scala中隱式轉換之隱式轉換調用類中本不存在的方法

esc rip args root imp 轉換 存在 val 轉換成

/**
  * 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中隱式轉換之隱式轉換調用類中本不存在的方法