apply的基本使用

53 阅读1分钟
在Scala中,apply方法放在类的伴生对象(object)里,主要起到工厂方法的作用,能够让使用者在创建该类实例时省去显示的ner关键字,并且可以通过重戴提供多种构造方式
package leve01


  /*
  * apply
  *     作用:写在伴生对象中,就可以允许创建对象的时候,省略new
  *

   */
  object Class08 {
    // 伴生类
    class Logger (){}
    // 伴生对象
    object Logger {
      def apply():Logger = {
        println("logger......")
        new Logger()
      }
    }

    def main(array: Array[String]):Unit = {
      //创建一个对象发
  //    val lop1 = new logger()
      // 在伴生对象中提供了apply方法,那么这里就会自动去调用它
      val log1 = Logger()
      val log2 = Logger()
      println(log1 == log2) // 在这里会输出什么 true ,因为它得到的是同一个对象
    }
}