每天学一点Scala之sealed

简介:

假设有一需求:对子类的声明范围进行限制,不允许外界私自创建子类,如何实现呢?

scala里,可以使用sealed来进行设定;

也就是说被sealed关键字修饰的traitclass类,具有以下特性:

    A、只能在本文件能声明子类

    B、  进行模式匹配时,会默认进行case匹配校验;如果存在漏掉某些case情况的话,会有告警信息

    

wKioL1mRrjTj-zZIAAA2HXUWbvg272.png-wh_50

wKiom1mRrjTg4RhgAAFCxbv3FbM788.png-wh_50

wKiom1mRsNXDUt4ZAASvubiJqNY992.png-wh_50

marathon源码里,大量使用了这种特性;

wKioL1mRsIPiWzLWAABDK-0s-zc978.png-wh_50

总之,看见sealed关键字时,脑子里就要想到有两个特性:

1、  子类只能在本文件里,限制了子类的声明范围

2、  进行模式匹配时,具有校验功能

 

















本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1956264 ,如需转载请自行联系原作者






相关文章
|
编译器 Scala
Scala学习笔记(七) Sealed Class 和 Enumeration
Scala学习笔记(七) Sealed Class 和 Enumeration
206 0
|
Scala Java 编译器
|
SQL 消息中间件 分布式计算
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
691 0
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
|
3月前
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
116 2
|
3月前
|
分布式计算 数据处理 Scala
Spark 集群和 Scala 编程语言的关系
Spark 集群和 Scala 编程语言的关系
32 0
|
4月前
|
分布式计算 Java Scala
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
|
12月前
|
存储 分布式计算 Scala
Spark-RDD 键值对的操作(Scala版)
Spark-RDD 键值对的操作(Scala版)