我发现自己不止一次写了以下丑陋的模式:
class Something[A, B](implicit ev: A =:= B = null) {
...
def doStuff {
if (ev == null) ... // know that A is not the same as B
else ... // safely assume A is equal to B
}
}
更糟糕的是,当 时ev != null
,我有时会写出诸如 之类的异端邪说someB.asInstanceOf[A]
。