scala不使用new关键字创建对象实例

来源:互联网 发布:手机淘宝哪儿有一元抢 编辑:程序博客网 时间:2024/06/07 20:15

在scala中,scala不使用new关键字创建对象实例,一般有2中方法:

1. 为类创建伴生对象,并在伴生对象内按照所需的构造函数签名定义一个apply方法;

2.将类定义为case类。


1)用apply方法创建一个伴生对象:

class ApplyOperation {}class ApplyTest{    def apply() = println("I am into spark so much!!!")    def haveATry: Unit ={        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)        val a = ApplyTest() //这里就是使用object 的使用         a.haveATry         a() // 这里就是 class 中 apply使用    }}

运行结果

I am into Scala so much
have a try on apply
I am into spark so much!!!

object apply 是一种比较普遍用法。 主要用来解决复杂对象的初始化问题。同时也是单例

2)将类声明为case类

case class Person(var :String)

case的作用在于它在伴生对象生成了一个apply对象,更重要的是,case类生成的代码远不止apply方法。apply实际上是一个工厂方法。



阅读全文
0 0
原创粉丝点击