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

Scala:它是一个类实例吗?

发布时间:2020-12-16 18:05:29 所属栏目:安全 来源:网络整理
导读:如果我运行此代码(见下文),我将CaseClass作为打印消息. case class CaseClass(var name: String)object Main extends App { val obj = CaseClass println(obj)} 但是这是什么意思?我的意思是CaseClass类似于Java的CaseClass.class? 解决方法 定义case类时,
如果我运行此代码(见下文),我将CaseClass作为打印消息.

case class CaseClass(var name: String)

object Main extends App {
  val obj = CaseClass
  println(obj)
}

但是这是什么意思?我的意思是CaseClass类似于Java的CaseClass.class?

解决方法

定义case类时,它实际上定义了一个类和一个对象,它们都具有相同的名称.当你说val obj = CaseClass时,你实际上是将对象,一个单例对象分配给obj.

它有点像:

class NonCaseClass(var name: String) {  // the actual class
  override def toString = "the class version" 
}
object NonCaseClass {                   // singleton companion object
  override def toString = "the object version" 
}

val obj = NonCaseClass   // this assigns the companion object to a variable
println(obj)
// the object version

这与实例化CaseClass类的实例不同:

val obj2 = new NonCaseClass("x")
println(obj2)
// the class version

(编辑:李大同)

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

    推荐文章
      热点阅读