scala.util.Success
没有apply
方法,但继承了scala.util.Try
(AFAIK)中的方法。但scala.util.Try.apply
所做的只是调用Success.apply
被try catch
块包围。这怎么不是无限递归的,它如何触发catch
块?
答案 0 :(得分: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