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

Sha*_*lla 2 recursion scala try-catch

scala.util.Success没有apply方法但继承了scala.util.Try(AFAIK)的方法.但所有的一切scala.util.Try.apply都是Success.apply被一个try catch街区所包围.这怎么不是无限递归的,它是如何触发catch阻塞的呢?

Her*_*lme 6

不,scala Success是继承的案例类abstract class Try.因此apply方法是由scala编译器生成的内置方法,不是从对象继承的Try.

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