4

Play Framework 1 有一个很棒的功能,即直接将值分配给模型属性会在运行时自动转换为函数调用。这是文档。例如

model.fullname = "John Smith";

在引擎盖下会自动转换成这个:

model.setFullname("John Smith");

Play Framework 2 中是否存在相同的功能?

它在任何地方都有记录吗?

这是一个示例 java 项目,我试图让该功能在 Play 2.1.1 中工作。它表明正在创建 getter 和 setter,但并未重写客户端字节码以调用生成的 getter 和 setter。

4

2 回答 2

4

这是本书的摘录:Play For Java


Play 使用称为“字节码增强”的很酷的技巧在编译原始代码后立即添加 getter 和 setter,然后默默地重写所有客户端字节码以使用生成的 getter 和 setter。但是,如果您从字段访问更改为 getter/setter,或者相反,您会发现您的代码不再编译。这是因为字节码增强发生在你的类编译之后,这意味着它必须首先实际编译。


您是否将字段访问权限更改为 getter/setter,或者相反?

于 2013-05-21T02:42:56.530 回答
0

我正在使用 Play 2.1.0,并且 getters/setters 生成(在运行时)对我有用。在我的“目标”目录中,在类中,我可以看到所有字段的 getter/setter 方法。仅当您的班级中已经有 getter/setter 时,它才不会生成它们。您可以为您的示例发布已编译的 MyModel.class 中的内容吗?

于 2013-05-20T18:24:08.157 回答