Skip to content

Instantly share code, notes, and snippets.

@julienroubieu
Last active November 14, 2019 20:46
Show Gist options
  • Select an option

  • Save julienroubieu/fbb7e1467ab44203a09f to your computer and use it in GitHub Desktop.

Select an option

Save julienroubieu/fbb7e1467ab44203a09f to your computer and use it in GitHub Desktop.

Revisions

  1. julienroubieu revised this gist May 13, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion JavaOptionals.scala
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    import java.util.Optional

    /**
    * Implicit conversions between Scala Option and Java 8 Optional.
    * Conversions between Scala Option and Java 8 Optional.
    */
    object JavaOptionals {
    implicit def toRichOption[T](opt: Option[T]): RichOption[T] = new RichOption[T](opt)
  2. julienroubieu revised this gist May 13, 2015. 1 changed file with 7 additions and 9 deletions.
    16 changes: 7 additions & 9 deletions JavaOptionals.scala
    Original file line number Diff line number Diff line change
    @@ -4,24 +4,22 @@ import java.util.Optional
    * Implicit conversions between Scala Option and Java 8 Optional.
    */
    object JavaOptionals {

    /**
    * Transform a Scala Option[T] to a Java Optional[T]
    */
    implicit def toRichOption[T](opt: Option[T]): RichOption[T] = new RichOption[T](opt)

    /**
    * Transform a Java Optional[T] to a Scala Option[T]
    */
    implicit def toRichOptional[T](optional: Optional[T]): RichOptional[T] = new RichOptional[T](optional)
    }

    class RichOption[T] (opt: Option[T]) {

    /**
    * Transform this Option to an equivalent Java Optional
    */
    def toOptional: Optional[T] = Optional.ofNullable(opt.getOrElse(null).asInstanceOf[T])
    }

    class RichOptional[T] (opt: Optional[T]) {


    /**
    * Transform this Optional to an equivalent Scala Option
    */
    def toOption: Option[T] = if (opt.isPresent) Some(opt.get()) else None
    }
  3. julienroubieu renamed this gist May 13, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  4. julienroubieu created this gist May 13, 2015.
    27 changes: 27 additions & 0 deletions gistfile1.scala
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    import java.util.Optional

    /**
    * Implicit conversions between Scala Option and Java 8 Optional.
    */
    object JavaOptionals {

    /**
    * Transform a Scala Option[T] to a Java Optional[T]
    */
    implicit def toRichOption[T](opt: Option[T]): RichOption[T] = new RichOption[T](opt)

    /**
    * Transform a Java Optional[T] to a Scala Option[T]
    */
    implicit def toRichOptional[T](optional: Optional[T]): RichOptional[T] = new RichOptional[T](optional)
    }

    class RichOption[T] (opt: Option[T]) {

    def toOptional: Optional[T] = Optional.ofNullable(opt.getOrElse(null).asInstanceOf[T])
    }

    class RichOptional[T] (opt: Optional[T]) {

    def toOption: Option[T] = if (opt.isPresent) Some(opt.get()) else None
    }