【发布时间】:2020-07-23 23:29:31
【问题描述】:
我的项目中创建了两张不同的地图。我都使用了类型别名。
type alias1 = Map[String, ScalaObject]
type alias2 = Map[String, String]
我有一个匹配情况,我想区分这两者,因为需要在两者上进行不同的操作。
val obj: T = fromJson[T](jacksonMapper, json)
obj match {
case _: alias1 => operation1()
case _: alias2 => operation2()
case _ => obj
}
知道如何区分这两者吗?
【问题讨论】:
-
你不能,由于类型擦除,这两种类型在运行时(正在执行模式匹配的地方)成为同一个类。您可以使用简单的 ADT 或 typeclass。
-
你能举个例子吗?