加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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,并在每次引用时重用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读