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]] }
我知道它仍然不是類型安全的,但我們獲得了警告,並且現在顯然在代碼中出現風險。但它更詳細...
那麼,你覺得這個解決方法是什麼?還有更好的方法嗎?