1
我工作的代码现有片:如何解决模式匹配和类型擦除斯卡拉
def f(s: Option[String]) = …
def matchAny(a: Any) = a match { case s: Option[String] => f(s) }
,编译器警告我(这是正常的,因为它不是类型安全)。
def matchAny(a: Any) = a match { case s: Option[_] => f(s.asInstanceOf[Option[String]] }
我知道它仍然不是类型安全的,但我们获得了警告,并且现在显然在代码中出现风险。但它更详细...
那么,你觉得这个解决方法是什么?还有更好的方法吗?