0

据我所知,隐式类用于为现有类型提供扩展方法,或者说丰富来自其他库或 API 的类型。但是,我正在玩耍并尝试了这个:

case class Person(firstname : String , lastName:String ) {
  def x() = {
      println("x")
  }
}

implicit class Foo(x : Person) {
  def y() = {
    println("y")
  }
}

Person("","").y()

我只想y()从这个文件中访问,而在其他地方未定义。

我本可以添加一个从类 Person 继承的私有类,从而y()在其中添加方法。[1]

所以我的问题是:除了这违背了隐式类本质上创建的原则之外;幕后到底发生了什么,这是否有任何应该注意的性能问题(与解决方案 1 相比)?

4

0 回答 0