栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

scala自学之路-29-样例类

scala自学之路-29-样例类

object CaseClassDemo {

def main(args: Array[String]): Unit = {

//定义样例类

//默认带有apply方法

//构造函数的参数默认是public val修饰的

//虽然可以显示的将其改为var修饰的,但是不推荐这种方法

case class Message(sender: String, var recipient: String, body: String)

val message1 = Message("zhangsan", "lisi", "hello")

val message2 = Message("zhangsan", "lisi", "hello")

println(message1.sender)

// message1.sender=""

message1.recipient = "wangwu"

//样例类的比较,基于值或者结构比较,而不是基于引用比较

println(message1 == message2)

//样例类的copy

val message3 = message1.copy()

println("message3:" + message3.sender + "," + message3.recipient + "," + message3.body)

println(message1 == message3)

//不完全拷贝,对部分参数进行赋值

val message4 = message1.copy(sender = "zhaoliu")

println("message4:" + message4.sender + "," + message4.recipient + "," + message4.body)

}

}

    样例类必须显示的生命一个主构造器;自动会构造一个空的辅助构造函数自动混入序列化的特质默认重写toStrinfg方法不需要new,就可以构建对象后面开发spark程序的时候,封装bean习惯上使用case class来封装
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753615.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号