我有以下涉及继承的类结构
sealed trait GeometryObject
case class Point(coordinates: Array[Double],`type` :GeometryObjectsType) extends GeometryObject
case class Polygon(coordinates: Array[Array[Array[Double]]],`type` :GeometryObjectsType) extends GeometryObject
我的协议如下:
object GeoJsonProtocol extends DefaultJsonProtocol {
implicit val geometryObjectsTypeFormat = GeometryObjectsTypeFormat
implicit val polygonFormat = jsonFormat2(Polygon)
implicit val pointFormat = jsonFormat2(Point)
}
获取错误 - 找不到GeometryObject类型的证据参数的隐式值。
有没有办法解决这个问题并保持继承的灵活性?
答案 0 :(得分:1)
需要类层次结构父格式,如下所示:
$pattern = '/smtp:([\w]*?@.*?\.(com|local))$/im';
preg_match_all($pattern, $emails, $matches);
var_dump($matches[1]);
注意:我有单独的类层次结构,表示序列化为类型字段的类型,这是必需的,以使类层次结构序列化工作。