Play Framework 1有一个很棒的功能,可以直接为模型属性赋值,并在运行时自动转换为函数调用。 Here are the docs。例如
model.fullname = "John Smith";
将自动转换为引擎盖下的内容:
model.setFullname("John Smith");
Play Framework 2中是否存在相同的功能?
是否记录在任何地方?
这是一个sample java project,我尝试在Play 2.1.1中使用该功能。它表明正在创建getter和setter,但是没有重写客户端字节代码来调用生成的getter和setter。
答案 0 :(得分:4)
以下是本书的摘录:Play for Java
Play使用一种名为“字节码增强”的酷炫技巧来添加getter 编译原始代码后立即设置,然后 默默地重写所有客户端字节代码以使用生成的 吸气剂和二传手。但是,如果您从字段访问更改为 getter / setters,或者相反,你会发现你的代码没有 更长的编译。这是因为字节码增强发生 在编译完类之后,这意味着它必须实际编译 第一
您是否更改了对getter / setter的字段访问权限,或者相反?
答案 1 :(得分:0)
我正在使用Play 2.1.0和getters / setters生成(在运行时)对我有用。在我的“目标”目录中,在类中我可以看到所有字段的getter / setter方法。 只有在课堂上已经有它们时才会生成getter / setter。您可以在编译的MyModel.class中发布您的示例吗?