1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
case class HasSingleField(f: HasSingleField) object Test { def main(args: Array[String]) = { val s: Object = HasSingleField(null) s match { case Matcher(self) => assert(self ne null) } } } object Matcher { def unapply(x: Object): Option[HasSingleField] = { if (x.isInstanceOf[HasSingleField]) Some(x.asInstanceOf[HasSingleField]) else None } }