+act #15383 add strict japi.Option.getOrElse to simplify working with options from Java

This commit is contained in:
Johannes Rudolph 2014-06-24 13:28:56 +02:00
parent c8406e3466
commit 657afbd859
2 changed files with 10 additions and 0 deletions

View file

@ -130,6 +130,11 @@ abstract class JavaPartialFunction[A, B] extends AbstractPartialFunction[A, B] {
*/
sealed abstract class Option[A] extends java.lang.Iterable[A] {
def get: A
/**
* Returns <code>a</code> if this is <code>some(a)</code> or <code>defaultValue</code> if
* this is <code>none</code>.
*/
def getOrElse[B >: A](defaultValue: B): B
def isEmpty: Boolean
def isDefined: Boolean = !isEmpty
def asScala: scala.Option[A]
@ -167,6 +172,7 @@ object Option {
*/
final case class Some[A](v: A) extends Option[A] {
def get: A = v
def getOrElse[B >: A](defaultValue: B): B = v
def isEmpty: Boolean = false
def asScala: scala.Some[A] = scala.Some(v)
}
@ -176,6 +182,7 @@ object Option {
*/
private case object None extends Option[Nothing] {
def get: Nothing = throw new NoSuchElementException("None.get")
def getOrElse[B](defaultValue: B): B = defaultValue
def isEmpty: Boolean = true
def asScala: scala.None.type = scala.None
}