在 playframework 中,我们是否需要在实现 QueryStringBindable 时始终覆盖 unbind 方法?

In playframework, do we need to always override unbind method when implementing QueryStringBindable?

https://www.playframework.com/documentation/2.8.0/api/scala/play/api/mvc/QueryStringBindable.html

该示例和许多其他示例在创建 OueryStringBindable 隐式时总是实现绑定和解除绑定,我们真的需要实现两者吗?

两者QueryStringBindable.{unbind,bind}都是抽象的,所以它们需要被实现(没有重写,因为特征中没有默认实现)。

一个QueryStringBindable也可以从提供的派生出来。

case class Foo(name: String)

object Foo {
  // Derive with `transform` ...
  implicit val queryStringBindable: QueryStringBindable[Foo] = 
    implicitly[QueryStringBindable[String]].transform[Foo](
      { name: String => Foo(name) },
      { foo: Foo => foo.name })
}