可以说我有一些密封的课程
sealed abstract class SomeEnumThing {
type RenderedType
}
object Type1 extends SomeEnumThing {
type RenderedType = String
}
object Type2 extends SomeEnumThing {
type RenderedType = Array[Byte]
}
我想要一个方法根据传入的参数中定义的抽象类型返回,例如
def render(something : SomeEnumThing) : something.RenderedType = { .... }
什么是正确的语法。这是否可能,我认为这与 2.10 方法相关类型有关。
编辑:更新示例
sealed abstract class SomeThing {
type RenderedType
}
object Type1 extends SomeThing {
type RenderedType = String
}
object Type2 extends SomeThing {
type RenderedType = Long
}
def render(something : SomeThing) : something.RenderedType =
something match {
case Type1 => "test"
case Type2 => 0l
}