有什么方法可以使Domain Class setter具有命令性的作用。我希望这是可行的,是否可以通过其他方式进行?

域类:

Class ExampleDomain {
  BigDecimal someNumber
  def setSomeNumber = {setVal ->
    println "Today is a good day to be the number: ${setVal}"
  }

}

我可以仅将事件绑定(bind)在onUpdate上吗,还是可以对Java对象驱动器事件进行更改?

例如:
def thisThing = new ExampleDomain(someNumber:3.0) //prints "Today is a good day to be the number: 3.0"
thisThing.someNumber = 5.8  //prints "Today is a good day to be the number: 5.8"
thisThing.save()  //prints nothing

那可能是行为吗?

最佳答案

您可以通过定义getter / setter方法而不是闭包来做到这一点:

Class ExampleDomain {
  BigDecimal someNumber

  void setSomeNumber(someNumber) {
    println "Today is a good day to be the number: ${someNumber}"
    this.someNumber = someNumber
  }

  BigDecimal getSomeNumber() {
    someNumber
  }
}

效劳于
//prints "Today is a good day to be the number: 5.8"
new ExampleDomain().someNumber = 5.8

10-04 17:53