您的位置:首页 > 其它

scala基础语法-隐式转换,隐式类

2015-01-04 11:11 316 查看
package org.xj.scala.spark

/**

* 隐式转换

*/

class Basic7 {

}

class A {

}

class RichA(a: A) { //A中增加方法,隐式转换

def rich {

println("rich...")

}

}

object Basic7 extends App {

/**

* 隐式转换,为一些类增加方法

*/

implicit def a2RichA(a: A) = new RichA(a) //隐式转换 a-->RichA

val a = new A

a.rich

/**

* 隐式参数

*/

def testParam(implicit name: String) { //隐式参数

println(name)

}

implicit val name = "implicit !!!" //隐式参数赋值

//testParam //不需要传参数,testParam()会报错

//testParam("xxx") //调用赋值,非常的灵活,各种各样的写法

/**

* 隐式类

*/

implicit class Calculator(x: Int) {
//为Int类型扩展,add方法

def add(a: Int): Int = a+1

}

//implicit xx.xx.Calculator

println(1.add(1)) //Int类型都能拥有扩展的add方法

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: