Scala的sealed关键字

    今天在看同事的代码时看到如下代码:

package object msg {
  sealed trait TaskType {
    def toString: String
  }

  trait DataCloudMSG extends Serializable

}



对其中sealed关键字不太明白,百度里一下,发现如下解释:

sealed

从上面的描述我们可以知道,sealed 关键字主要有2个作用:

  • 其修饰的trait,class只能在当前文件里面被继承

  • 用sealed修饰这样做的目的是告诉scala编译器在检查模式匹配的时候,让scala知道这些case的所有情况,scala就能够在编译的时候进行检查,看你写的代码是否有没有漏掉什么没case到,减少编程的错误。