scala中隱式轉換之隱式轉換調用類中本不存在的方法
阿新 • • 發佈:2017-12-07
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中隱式轉換之隱式轉換調用類中本不存在的方法