Scala隐式转换

 1 package big.data.analyse.scala
 2 
 3 import java.io.File
 4 
 5 import scala.io.Source
 6 
 7 /**
 8   * 隐式转换
 9   * Created by zhen on 2019/1/6.
10   */
11 class RichFile(val file:File){
12   def read = Source.fromFile(file.getPath()).mkString
13 }
14 object Context{
15   implicit def file2RichFile(file:File) = new RichFile(file)
16 }
17 object ImplicitConversion {
18   def main(args: Array[String]) {
19     //导入隐式转换
20     import Context.file2RichFile
21     println(new File("C:/Users/zhen/.spyder-py3/发布模块/setup.py").read)
22   }
23 }

解析:

  一个从类型S到类型T的隐式转换由一个函数类型 S => T的隐式值来定义,或者由一个可转化成所需值的隐式方法来定义。

  隐式转换一般在下面两种情况下使用:

    1.如果表达式e的类型为S,并且类型S不符合表达式的期望类型T。

    2.在一个类型为S的实例对象e中调用e.show,如果被调用的show并没有在类型S中声明。

结果:

原文地址:https://www.cnblogs.com/yszd/p/10234813.html