你能帮助我理解scala中scala.runtime.AbstractFunction1的用法吗?为什么我们需要覆盖其中的apply方法。
答案 0 :(得分:1)
scala.runtime
中的所有类只是编译器生成的代码使用的实现细节。它们通常不应出现在用户代码中。
有一个例外:如果你需要调用一个方法scala.Function*
(其中*
是参数的数量)来自Java ,你应该使用a(通常匿名)类扩展scala.runtime.AbstractFunction*
,因为Java编译器不了解Scala特征。但这不是“在scala中使用scala.runtime.AbstractFunction1”,因此与此问题无关。
您还可以在Scala中扩展scala.runtime.AbstractFunction*
而不是scala.Function*
,但这会产生相同的结果(生成的代码稍微小一点)。