我创建了一个代码在Scala中继承其实际使用继承组成了
任何其他替代办法做到这一点,如果我想用组成。用于该
case class Test(message:msg)
abstract class MsgValuetype(value: myString) {
override def toString = s"${value.value}"
}
case class msg(id:String) extends MsgValuetype(myString(id))
case class myString(value: String){
override def toString = s"$value"
}
下面是我的最后的调用来测试上面的。我只想要传递字符串。请注意实际的类在我的用例中更加复杂。我刚刚试图用简单的方法来获得替代解决方案。
Test(msg("123"))
更新1
如果我尝试做使MsgValuetype作为其扩展味精情况类的一部分,而不是。
case class Test(message:msg)
case class MsgValuetype(value: myString) {
override def toString = s"${value.value}"
}
case class msg(id:String,myType:MsgValuetype)
case class myString(value: String){
override def toString = s"$value"
}
我需要做下面的呼吁进行初始化
Test(msg("123",MsgValuetype(myString("123"))))
我只是想拨打电话一样
Test(msg("123"))
我对你在这里试图完成的事情有点困惑?是否只是想通过传递字符串来初始化'Test'?在这种情况下,最明智的解决方案是在伴随对象中使用重载的“应用”方法。 – puhlen
你想要创作什么?你的例子不足以解释你想要完成的事情。只要有味精包含一个字段MsgValueType而不是扩展它? – puhlen
@ puhlen我已经更新了这个问题,希望通过使用你的代码澄清 – coder25