解释scala中Abstractfunction1的用法

时间:2016-09-07 20:37:09

标签: scala

你能帮助我理解scala中scala.runtime.AbstractFunction1的用法吗?为什么我们需要覆盖其中的apply方法。

1 个答案:

答案 0 :(得分:1)

scala.runtime中的所有类只是编译器生成的代码使用的实现细节。它们通常不应出现在用户代码中。

有一个例外:如果你需要调用一个方法scala.Function*(其中*是参数的数量)来自Java ,你应该使用a(通常匿名)类扩展scala.runtime.AbstractFunction*,因为Java编译器不了解Scala特征。但这不是“在scala中使用scala.runtime.AbstractFunction1”,因此与此问题无关。

您还可以在Scala中扩展scala.runtime.AbstractFunction*而不是scala.Function*,但这会产生相同的结果(生成的代码稍微小一点)。