Scala对象的字段在每次使用时都会初始化
发布时间:2020-12-16 09:07:37 所属栏目:安全 来源:网络整理
导读:为什么每次使用字段时都会初始化对象的字段?我的期望是 Scala对象的一个??实例,在我的例子中是P的一个实例,因为它属于一个Scala对象而被创建一次.运行下面的代码看起来并非如此.每次调用P上的方法时都会创建P的实例. 我找不到这种行为的任何解释.有人可以帮
为什么每次使用字段时都会初始化对象的字段?我的期望是
Scala对象的一个??实例,在我的例子中是P的一个实例,因为它属于一个Scala对象而被创建一次.运行下面的代码看起来并非如此.每次调用P上的方法时都会创建P的实例.
我找不到这种行为的任何解释.有人可以帮忙吗?谢谢. object LoadingTest { println("create Object") def p = new P() def main(args: Array[String]) { p.printIt() p.printIt() } } class P(){ println("create P") def printIt()={ println("print it") } } 输出: create Object create P print it create P print it 解决方法
这是因为你有def p = new P().通过使用def定义它,您将定义一个方法.因此,每次引用p时,它都会调用该方法,从而实例化一个新的P.
您希望val p = new P(),这将确保对象仅实例化一次,存储为val,并在每次引用时重用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |