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








相关文章
|
2月前
|
存储 分布式计算 资源调度
【赵渝强老师】阿里云大数据MaxCompute的体系架构
阿里云MaxCompute是快速、全托管的EB级数据仓库解决方案,适用于离线计算场景。它由计算与存储层、逻辑层、接入层和客户端四部分组成,支持多种计算任务的统一调度与管理。
279 1
|
Python
基于Python+tkinter实现一个简易计算器桌面软件
基于Python+tkinter实现一个简易计算器桌面软件
288 3
|
存储 负载均衡 算法
分布式基础概念
分布式基础概念
274 5
|
编译器 程序员 C语言
26 C语言 - 头文件
26 C语言 - 头文件
166 0
|
安全 API Swift
探索iOS开发中的Swift语言之美
【10月更文挑战第23天】在数字时代的浪潮中,iOS开发如同一艘航船,而Swift语言则是推动这艘船前进的风帆。本文将带你领略Swift的独特魅力,从语法到设计哲学,再到实际应用案例,我们将一步步深入这个现代编程语言的世界。你将发现,Swift不仅仅是一种编程语言,它是苹果生态系统中的一个创新工具,它让iOS开发变得更加高效、安全和有趣。让我们一起启航,探索Swift的奥秘,感受编程的乐趣。
|
前端开发 UED 开发者
django插件推荐django-crispy-forms
django插件推荐django-crispy-forms
447 0
【并发技术14】线程同步工具Semaphore的使用
【并发技术14】线程同步工具Semaphore的使用
|
程序员 C语言 C++
函函函函函函函函函函函数——one
函函函函函函函函函函函数——one
272 0