在所有使用过的子类型中都存在的子类型案例类的访问成员

问题描述 投票:0回答:1

[我正在写一个ScalaTest记者,目前我有两个案例类事件'TestSucceeded'和'TestFailed',它们扩展了'Event'并且我有一个功能:

def getInfo(event: Event) {
  println(event.suiteName)
}

suiteName字符串是'TestSucceeded'和'TestFailed'案例类的成员,但是我找不到比以下方法更好的实现方式]]

def getInfo(event: Event) {
  if(event.isInstanceOf[TestSucceeded])
    println(event.asInstanceOf[TestSucceeded].suiteName)
  else println(event.asInstanceOf[TestFailed].suiteName)
}

我正在编写一个ScalaTest记者,目前我有两个案例类事件'TestSucceeded'和'TestFailed',它们扩展了'Event'并且我有一个函数:def getInfo(event:Event){println(event ... 。

scala inheritance
1个回答
0
投票

像这样通过sealed abstract class考虑代数数据类型

© www.soinside.com 2019 - 2024. All rights reserved.