/**
* 定义一个类,有一个隐式参数的方法
*/
class Boys {
def getAge(name: String)(implicit map: HashMap[String, Int]) = {
val age = map.getOrElse(name, null)
println(name + "的年龄是:" + age)
}
}
调用
object ImplicitClient extends App {
//隐式值
implicit val mk = new HashMap[String, Int]()
//封装一些测试数据
mk.put("张三", 19)
mk.put("李四", 26)
mk.put("王五", 26)
//新建一个对象
private val boys = new Boys
//调用对象的方法,此时他会在上下文环境中寻找是否有符合条件的隐式值mk
boys.getAge("李四")
boys.getAge("王五")
boys.getAge("张三")
boys.getAge("李元霸")
}
执行结果
李四的年龄是:26
王五的年龄是:26
张三的年龄是:19
李元霸的年龄是:null
Process finished with exit code 0