我创建了以下枚举对象
sealed trait MsgMapping[T] {def mycode: T;}
object Type1 {
sealed trait msg[Int] extends MsgMapping[Int]
case object A extends msg[Int]{val myCode = 0;}
case object B extends msg[Int]{val myCode = 1;}
}
object Type2 {
sealed trait msgtype[String] extends MsgMapping[String]
case object C extends msgtype[String]{val myCode = "xyz";}
case object D extends msgtype[String]{val myCode = "def";}
}
我想创建一个除了任何类型的MessageMapping之外的通用case类,它可以是Integer / String或任何数据类型
但是这一行会产生错误,因为它需要这种类型。
case class EumType(valueType: MsgMapping [T])
以下作品
case class EumType1(valueType: MsgMapping [Int])
case class EumType2(valueType: MsgMapping [String])
case class TestEnum(value:EumType1)
case class Test(val:TestEnum)
但我不想创建EumType1和EumType2。任何人都可以帮我创建一个通用代码
更新
根据建议
case class EnumType[T](valueType: MsgMapping[T])
case class TestEnum(value:EnumType[T])
It will throw compile error since it expects type
here but i want to pass the type on this line
case class Test(val:TestEnum) ,whether it is Type1 /Type2
答案 0 :(得分:0)
尝试使用存在类型:
case class EumType(valueType: MessageMapping [_])