每天学一点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/1956263 ,如需转载请自行联系原作者








相关文章
|
Python
基于Python+tkinter实现一个简易计算器桌面软件
基于Python+tkinter实现一个简易计算器桌面软件
244 3
|
编译器 程序员 C语言
26 C语言 - 头文件
26 C语言 - 头文件
152 0
|
大数据
《大数据之路:阿里巴巴大数据实践》| 每天读本书
本书是为了满足不断变化的业务需求,同时实现系统的高度扩展性、灵活性以及数据展现的高性能而设计的。
3997 0
|
Cloud Native Apache 流计算
福利「Flink Forward Asia 2023 」PPT 阅读合集!
福利「Flink Forward Asia 2023 」PPT 阅读合集!
3634 1
福利「Flink Forward Asia 2023 」PPT 阅读合集!
|
机器学习/深度学习 数据可视化 大数据
【钉钉杯大学生大数据挑战赛】初赛 A:银行卡电信诈骗危险预测 Baseline
本文介绍了参加"钉钉杯大学生大数据挑战赛"初赛A的银行卡电信诈骗危险预测项目的Baseline方案,包括问题分析、Python实现(含数据探索、模型训练调参、特征工程、模型评价和可视化)、以及代码下载链接。
244 0
|
10月前
|
安全 API Swift
探索iOS开发中的Swift语言之美
【10月更文挑战第23天】在数字时代的浪潮中,iOS开发如同一艘航船,而Swift语言则是推动这艘船前进的风帆。本文将带你领略Swift的独特魅力,从语法到设计哲学,再到实际应用案例,我们将一步步深入这个现代编程语言的世界。你将发现,Swift不仅仅是一种编程语言,它是苹果生态系统中的一个创新工具,它让iOS开发变得更加高效、安全和有趣。让我们一起启航,探索Swift的奥秘,感受编程的乐趣。
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(下)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
SQL 分布式计算 Java
Spark中的DataFrame和Dataset有什么区别?请解释其概念和用途。
Spark中的DataFrame和Dataset有什么区别?请解释其概念和用途。
456 0