一.apply的基本使用
在 Scala 中,apply 方法放在类的伴生对象(object)里,主要起到 工厂方法的作用,能够让使用者在创建该类实例时省去显式的 new 关键字,并且可以通过重载提供多种构造方式。当写ClassName(arg1,arg2)时,编译器会自动翻译ClassName.apply(arg1,arg2),这可以让实例化代码更简单。 (1)apply 写在伴生对象中,它返回类的实例
(2)实例化对象时,就可以不用写new
package level02
object Class10 {
// 伴生类
class Logger(){}
// 伴生对象
object Logger {
def apply(): Logger = {
println("logger……")
new Logger()
}
}
def main(args: Array[String]): Unit = {
//创建一个类的对象
val log1 = Logger()
val log2 = Logger()
println(log1 == log2)
}
}
二.apply实现单例模式
在代码中 isEmpty判断是否为空,Some()用来包装一个对象,如果这个对象为空,就得到None对象,否则就返回这个对象。