Scala深入浅出进阶经典 第65讲:Scala中隐式转换内幕操作规则揭秘、最佳实践及其在Spark中的应用源码解析

来源:互联网 发布:java调用api接口 例子 编辑:程序博客网 时间:2024/05/10 03:19
package com.dt.scalaInAction.demo_065import java.io.Fileimport scala.io.Source/** * Scala中隐式转换内幕操作规则揭秘、最佳实践及其在Spark中的应用源码解析 */class RichFile(val file: File) {    def read = Source.fromFile(file.getPath).mkString}class File_Impkicits(path: String) extends File(path)object File_Impkicits {    implicit def file2RichFile(file: File) = new RichFile(file) //file-->RichFile}object Implicits_Internals {    def main(args: Array[String]): Unit = {       /*        * 这里没有导入隐式对象        *         * 通过给File_Impkicits类 构建一个伴生对象 在伴生对象内部顶一个隐式转换的方法        *         * 执行顺序:        * 1.搜索File_Impkicits有无read方法         * 2.在上下文上搜索(有无导入的隐式对象)        * 3.搜索File_Impkicits的伴生对象内有无隐式转换  发现implicit关键 尝试匹配类型          *    例如这里匹配file2RichFile(file: File) 返回类型为RichFile 在RichFile中发现read方法        */       println(new File_Impkicits("E:\\projectTest\\1.txt").read)    }}
以上内容是从王家林老师DT大数据课程第65讲的学习笔记和个人整理。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
第65讲视频网站地址:http://pan.baidu.com/s/1hqyCbGg



0 0
原创粉丝点击