玩!框架支持 Java 8 可选

Play! Framework support for Java 8 Optional

我有一个游戏! 2 个路由文件和控制器,看起来像这样:

GET /books BooksController.getBooks(author: play.libs.F.Option[String])

public class BooksController extends Controller {

  public static Result getBooks(play.libs.F.Option<String> author) {
    ...
  }    
}

我想重构它以使用 Java 8 的 Optional,但这会导致编译错误:

GET /books BooksController.getBooks(author: java.util.Optional[String])

public class BooksController extends Controller {

  public static Result getBooks(java.util.Optional<String> author) {
    ...
  }    
}

我已经尝试创建一个自定义 QueryStringBindable,但这迫使我将控制器的参数键入为可绑定的类型,而不是 Optional。还有其他方法吗?谢谢。

现在不可能。有一个 github issueF.Option 替换为 java.util.Optional。它将在 Playframework 2.5.0.

内交付