Scalaのapply

904 ワード

class ApplyTest{
  def apply() = println("I am into Spark so much!!!")
   
  def haveATry{
    println("Have a try on apply!")
  }
}
object ApplyTest{
  def apply() = {
    println("I am into Scala so much!!!")
    new ApplyTest
  }
}
object ApplyOperation {
  def main(args: Array[String]) {
    val array = Array(1,2,3,4,5)
    val a = ApplyTest() //     new,           
    a.haveATry 
  }
}

結果:I am into Scala so much!!!Have a try on apply!
クラスの伴生オブジェクトではapplyメソッドが実装され、クラスのインスタンスを作成できます.例えばval a=Array(1,2,3)はArrayを用いたapply法である.
同様にclassでもapplyメソッドを使用できます.
object ApplyOperation {
  def main(args: Array[String]) {
     val a = new ApplyTest
     a.haveATry
     println(a())  //  class apply  
  }
}

結果:Have a try on apply!I am into Spark so much!!! ()