为什么 scala.util.Success.apply 不是无限递归的?

Why isn't scala.util.Success.apply infinitely recursive?

scala.util.Success doesn't have an apply method but inherits the one from scala.util.Try(据我所知)。但是 scala.util.Try.apply 所做的只是调用 Success.apply 并用 try catch 块包围。这怎么不是无限递归的,这怎么会触发 catch 块?

不,scala 的 Success 案例 class 继承 abstract class Try。 所以apply方法是scala编译器生成的内置方法,不是继承自对象Try.

来源https://github.com/scala/scala/blob/2.11.x/src/library/scala/util/Try.scala#L225