Spark基础-Scala中implicits转换操作

来源:互联网 发布:66影视软件下载 编辑:程序博客网 时间:2024/06/05 15:20

核心
scala中implicits操作

package com.xlucas/**  * Created by xlucas on 2017/8/27 0027.  */class Man(val name:String)/*object  Man{  implicit def man2superMan(man:Man)=new SuperMan(man.name)}*/class SuperMan(val name: String){  def make2super=println(this.name+" super super")}object implicts {  implicit def man2superMan(man:Man)=new SuperMan(man.name)}object ImplicitsOop {  def main(args: Array[String]): Unit = {    import  com.xlucas.implicts._   //如果我们借助伴生对象这个来定义隐式转换的操作,我们可以定义object 隐式转换的方法                                     //使用 的时候导入隐式转换的包就可以    val man=new Man("spark")    man.make2super  //按照正常来说man对象不能直接调用make2super方法,但是我们可以看到                    //Man的伴生对象里面做了一次隐式转换的操作,所以man对象能调用了    talk("scala")("spark")    implicit val  context="hadoop"    talk("scala")  //也可以在上面直接定义这个context在使用的时候可以不传递,如果需要传递也可以按照正常的方法                    //传递或者修改的操作  }  def talk(name:String)(implicit context:String) =println(name+" talk to "+context)}