每天学一点Scala之apply方法

风流不在谈锋胜,袖手无言味最长。这篇文章主要讲述每天学一点Scala之apply方法相关的知识,希望能为你提供帮助。

  • apply方法一般什么地方出现
                此方法一般在伴生对象中实现的
  • 目的:
                改变了创建伴生类实例的方式,不再通过new的方式,而是直接使用类名() 的方式,scala底层会隐式的调用apply方法
package  com.xej.learning.apply/**     *  apply方法:  就是创建对象时,不再使用new的形式,而是直接使用了类名()的形式     */ private[apply]  class  Storm object  Storm{       //创建伴生类的对象时,会隐式的调用这个的       def  apply:  Storm  =  new  Storm() } private[apply]  class  Kafka(val  name:  String) object  Kafka{       //由于伴生类的主构造器是有参数的,       //因此,这里,也必须有参数的       def  apply(name:  String):  Kafka  =  new  Kafka(name) }object  ApplyTest  {       def  main(args:  Array[String]):  Unit  =  {             val  storm  =  Storm             val  kafka  =  Kafka("kafka")       } }

marathon源码中,同样大量使用了这种形式,如:
每天学一点Scala之apply方法

文章图片















【每天学一点Scala之apply方法】本文出自 “XEJ分布式工作室” 博客,请务必保留此出处http://xingej.blog.51cto.com/7912529/1961584

    推荐阅读