它们指的是同一件事,但是当我比较 2 种类型标签时:
val ttg1 = typeTag[Map[_,_]]
val ttg2 = typeTag[immutable.Map[_,_]]
assert(ttg1.tpe == ttg2.tpe)
我有:
Map[_, _] did not equal scala.collection.immutable.Map[_,_]
ScalaTestFailureLocation:
Expected :scala.collection.immutable.Map[_,_]
Actual :Map[_, _]
这怎么会在打字语言中发生?我如何使它们相同?
更新:对于 List 这更令人困惑:
val ttg1 = typeTag[List[_]]
val ttg2 = typeTag[immutable.List[_]]
assert(ttg1.tpe == ttg2.tpe)
List[_] did not equal List[_]
ScalaTestFailureLocation:
Expected :List[_]
Actual :List[_]
它们是完全一样的!然而反射选择忽略它。