当前位置: 代码迷 >> 综合 >> scala之隐式转换
  详细解决方案

scala之隐式转换

热度:7   发布时间:2024-02-22 09:53:38.0

隐式转换,顾名思义就是隐式的让class A拥有class B的功能,可以理解为将class A进行了增强。

先体验下面一个例子:

// 有Cat和Dog两个类
class Cat{def catchMouse: Unit ={println("我会捉老鼠")}
}class Dog{def lookDoor: Unit ={println("我会看家")}
}

cat和dog各有一个方法,捉老鼠和看家。但是现在我想让dog也能捉老鼠,完全可以在dog类中添加这样的方法,但是结果就是代码冗余,看起来很乱,不过利用隐式转换就可以直接达到效果.

object DemoConversion {def main(args: Array[String]): Unit = {implicit def dog2cat(dog: Dog) = new Cat  // implicit为隐式转换的关键字val dog = new Dogdog.lookDoordog.catchMouse}
}

轻松搞定

未完待续......