View difference between Paste ID: yU4JUfBS and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | scala> import scala.util.control.Exception.catching |
2 | import scala.util.control.Exception.catching | |
3 | ||
4 | scala> def ?[T](block: => T): Option[T] = catching(classOf[NullPointerException]) opt block match { | |
5 | | case Some(t) => if (t == null) None else Some(t); case _=> None } | |
6 | $qmark: [T](block: => T)Option[T] | |
7 | ||
8 | scala> def lastmethodcall: String = null | |
9 | lastmethodcall: String | |
10 | ||
11 | scala> def npe: String = {val s: String = null; s.toString} | |
12 | npe: String | |
13 | ||
14 | scala> ?[String](npe) | |
15 | res27: Option[String] = None | |
16 | ||
17 | scala> ?[String](lastmethodcall) | |
18 | res28: Option[String] = None | |
19 | ||
20 | scala> def yay="foo" | |
21 | yay: java.lang.String | |
22 | ||
23 | scala> ?[String](yay) | |
24 | res29: Option[String] = Some(foo) |