1.apply的场景
Scala中实例化一个类,可以不用new , 其原因 其实就是 apply 方法,具体原因 后边再讲:
在上句中Scala 生成Array对象, 会自动去调用 Array 这个伴生对象的 伴生类中的apply方法,
2.先来看下apply方法的调用约定:
即 如果我们让一个类的实例化对象 或者一个单例对象,后边直接跟一个小括号并在括号中传递参数, eg: 类实例(参数) 或 单例对象(参数) ,
这种写法出现时,Scala会自动在该对象中 查找apply 方法,而且这个apply方法的参数和 调用时候写的 参数一致 (即:参数个数和类型一致)
eg:
class ApplyTest { def apply(name:String): Unit ={ printf("called apply method , and name is %s",name) } } val test = new ApplyTest test.apply("张三")
输出: