DT大数据梦工厂第59讲-隐式转换初体验

学习了王家林老师的DT大数据梦工厂第59讲视频讲座,总结如下:

隐式转换出现的原因是某个类需要用到其他类的方法
实现方式是定义增强类、定义 隐式转换方法、在需要 隐式转换的地方import 隐式转换方法

示例如下:

package   com.fish.scala

import   scala.io.Source
import   java.io.File

/**
 * @author fish
 */
class   ImplicitSample {
 
}

//定义增强类,参数为原类;对原类进行包装,增加read方法,类似java中的门面模式
class   RichFile( val   file :File){
    def   read   =   Source . fromFile ( file . getPath ()). mkString
}

//定义隐式转换方法,参数为原类,返回值为增强类
object   Context   {
    implicit   def   file2RichFile   ( file   :File) =   new   RichFile(   file )
}


object   ImplicitSample   {
    def   main ( args   : Array[   String ]){
      //声明隐式转换,在file找不到read方法的时候,查找 println的作用域,发现import implicit方法
      import   Context.   file2RichFile
      println ( new   File(   "E: \\ test.txt"   ). read )
  }
}

你可能感兴趣的:(scala)