博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala 隐式转换 重要一点 什么是隐式转换以及隐式转换带来的好处
阅读量:5325 次
发布时间:2019-06-14

本文共 3494 字,大约阅读时间需要 11 分钟。

Scala 隐式转换 重要一点 什么事隐式转换

package com.xing.listfile/**  * Created by DengNi on 2017/2/12.  * 简要说明 implicit 是什么 ? 就是从一个类的对象调用另外一个类方法  *///Method 1 OptimusPrime can not call AutoBots 's function BlowFire// 增加 OptimusPrime object 对象 实现隐式转换class OptimusPrime(val function :String)  //此处 val 是必须的 ,不然找不到 optimusPrime.function/**object OptimusPrime{  implicit def optimusPrime2AutoBots(optimusPrime:OptimusPrime) = new AutoBots(optimusPrime.function)}**/class AutoBots(function : String){  def blowFire = println(function + ": I can blow fire to fire you!!!")}//Method 2 定义一个不同类名字的 object  对象  ,zai  main 方法里面引用这个 对象object implictis {  implicit def optimusPrime2AutoBots(optimusPrime:OptimusPrime) = new AutoBots(optimusPrime.function)}object HelloImplicit {  def main(args: Array[String]) {    import implictis._    val op = new OptimusPrime("OptimusPrime")    println(op.blowFire)    //多参数   // talk("p1") 只传一个参数 指定是错的了    talk("p1")("p22")    // 但是我们就只想传一个 呢??    implicit val name2 ="eat you"  //此处也引用了 隐式转换    talk2("p3")  }  // 定义一个函数 有两个参数  def talk(name1 : String)(name2:String) = println("thera are 2 param")  def talk2(name1 : String)(implicit name2:String) = println("thera are 2 param " +name2) // 此处 implicit 必须加}/**"C:\Program Files\Java\jdk1.7.0_80\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_80\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\rt.jar;D:\bigdataworkspaces\kafSpSt\out\production\kafSpSt;F:\scala\lib\scala-actors-migration.jar;F:\scala\lib\scala-actors.jar;F:\scala\lib\scala-library.jar;F:\scala\lib\scala-reflect.jar;F:\scala\lib\scala-swing.jar;D:\bigdataworkspaces\kafSpSt\lib\fastjson-1.2.11.jar;D:\bigdataworkspaces\kafSpSt\lib\fastutil-7.0.11.jar;D:\bigdataworkspaces\kafSpSt\lib\kafka_2.10-0.8.2.1.jar;D:\bigdataworkspaces\kafSpSt\lib\mysql-connector-java-5.1.6.jar;D:\bigdataworkspaces\kafSpSt\lib\mysql-connector-java-5.1.8-bin.jar;D:\bigdataworkspaces\kafSpSt\lib\spark-assembly-1.6.0-hadoop2.6.0.jar;D:\bigdataworkspaces\kafSpSt\lib\spark-examples-1.6.0-hadoop2.6.0.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain com.xing.listfile.HelloImplicitOptimusPrime: I can blow fire to fire you!!!()thera are 2 paramthera are 2 param eat youProcess finished with exit code 0 **/

转载于:https://www.cnblogs.com/TendToBigData/p/10501284.html

你可能感兴趣的文章
矩阵翻转(上下,左右)
查看>>
剑指offer系列39:把字符串转换成整数
查看>>
cdoj1580 简单图论问题
查看>>
Logging 日志配置格式模板
查看>>
day4 liaoxuefeng---高级特性
查看>>
js,jq.事件代理(事件委托)复习。
查看>>
regular 点滴
查看>>
mysql中时间格式
查看>>
Hadoop介绍与安装
查看>>
redis 新开端口号
查看>>
fedora 21 安装 搜狗输入法
查看>>
Javascript获取url中的参数
查看>>
App对接支付宝移动支付功能
查看>>
Android Material Design 系列之 SnackBar详解
查看>>
浏览器端缓存的一个小问题及解决方案
查看>>
评论列表显示及排序,个人中心显示
查看>>
从git上拉下来的严选weex项目demo
查看>>
ios 字符串处理:截取字符串、匹配字符串、分隔字符串
查看>>
网络丢包严重的解决办法
查看>>
[Training Video - 5] [Groovy Script Test Step - Collections, Exceptions] Array and ArrayList
查看>>