apply方法类似于java中类的初始化,在 Object(参数1,参数2,... ,)时会自动调用apply方法,无需使用new 关键字。
scala中的apply方法会出现在两个地方: 一是伴生对象,另一是类。
一 伴生对象中的apply方法
当对象以函数的方式进行调用(直接在单例对象后面添加参数)时,scala会隐式地将调用改为在该对象上调用apply方法。例如XX("hello")实际调用的是XX.apply("hello")。因此,apply方法又被称为注入方法。apply方法常用语创建类实例的工厂方法。
object Greeting {
def apply(name: String) = "hello" + name
}Greeting("scala")实际上是Greeting.apply("scala")
二 class 或 trait 中的apply方法
调用class()时,会自动调用class中的apply方法。
本文介绍了Scala语言中apply方法的应用场景及其实现原理。包括在伴生对象和类中如何使用apply方法来替代构造函数,以及如何作为工厂方法来创建实例。
548

被折叠的 条评论
为什么被折叠?



