我有一个包含字段的模型类:
public class Model1 {
@Bind private int LL;
@Bind private double[] twKI;
@Bind private double[] twKS;
@Bind private double[] twINW;
@Bind private double[] twEKS;
}
我创建了一个注释:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Bind {
}
是否可以为Model1
类中的字段定义getter和setter而不进行修改,以便以后可以在groovy脚本中使用它们?
答案 0 :(得分:2)
您有多种选择,您可以选择更适合您的选择:
我们有一个模型对象:Model model = new Model()
<强> 1。使用getter和setter :
创建getter和setter方法,然后调用setter方法:model.setLL(10)
<强> 2。没有getter和setter :
在groovy / grails范围变量中,除非出于某些特定目的而覆盖它们,否则没有太大区别。因此,您可以使用model.LL = 10
第3。使用setProperty :model.setProperty('LL', 10)
<强> 4。反射方式:在设置字段值之前,将其标记为可访问。
Field field = Model.getDeclaredField("LL")
field.setAccessible(true)
field.set(model, 10)