玩!框架支持 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 issue 将 F.Option
替换为 java.util.Optional
。它将在 Playframework 2.5.0
.
内交付
我有一个游戏! 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 issue 将 F.Option
替换为 java.util.Optional
。它将在 Playframework 2.5.0
.