PlayFramework 中 "new Form(A.class)" 和 "form(A.class)" 的区别?

The difference between "new Form(A.class)" and "form(A.class)" in PlayFramework?

我正在使用 PlayFramework 2.2.1,我对 new Form(A.class)form(A.class) 之间的区别有疑问。

在 PlayFramework 中,如果要在应用程序中使用这些值,则必须从网页中的特定表单中选取值。通常我使用 Form 实例和 bindFromRequest 方法,如下所示:

Form<OneForm> f = new Form(OneFrom.class).bindFromRequest();

但是我在某指导书上也看到了这段代码:

Form<OneForm> f = form(OneForm.class).bindFromRequest();

它们之间有什么区别吗?如果你有什么想法,请教我。

没有区别。两者都创建了 Form 的实例,它包装了 OneForm.class(查看 source):

public static <T> Form<T> form(Class<T> clazz) {
    return new Form<T>(clazz);
}
.... 

所以它只是一个 convenience/wrapper 方法。另一方面,form(..) 方法在更高版本的游戏(特别是 2.5)中是 deprecated。因此,如果您计划在未来将框架升级到最新版本,那么最好坚持使用第一个版本。