Koichi Adachi

smart phone app development tips

Scala defの引数にクラスを指定する

noneだったら指定のエラーのLeftに入れて返すメソッドを作った時に、classを渡せないかなーと思い、こんな風に書いてみた。 このメソッドは作らずにも実現できることが分かったので、使わなくなったけど、メモ。

  private def noneSomeFilter[M](maybeObject: Option[M], clazz: Class[_ <: Any]): \/[ErrorReason, M] = {
    maybeObject match {
      case Some(m) => m.right
      case _ => new ErrorReason(clazz).left
    }
  }