在 scala 中使用 case class 的通用枚举

Generic enum using case class in scala

我创建了以下枚举对象

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";}
 }

我想创建一个通用案例 class 可以排除任何类型的 MessageMapping ,它可以是 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

尝试使用存在类型:

case class EumType(valueType: MessageMapping [_])