Half type-safe cast.
Half type-safe cast. It uses erasure semantics (like Java casts). For example:
xs: List[Int]
xs.asInstanceOfOpt[List[Int]] == xs.asInstanceOfOpt[List[Double]] == xs.asInstanceOfOpt[Seq[Int]] == Some(xs)
and
xs.asInstanceOfOpt[String] == xs.asInstanceOfOpt[Set[Int]] == None
None if the cast fails or the object is null
, Some[B]
otherwise