gpt4 book ai didi

grails - Groovy/Grails : Enhance a Static Closure

转载 作者:行者123 更新时间:2023-12-02 13:50:14 27 4
gpt4 key购买 nike

我正在寻找一种修改/更改现有闭包的方法。但是,我不想覆盖它;相反,我想增强它。

这是一个简单的例子。假设我们有一个地址对象:

class Address {
String street
String city
String state
String zipCode

static constraints = {
street( nullable:true )
city( blank:false )
state( size:2..2 )
}
}

这将是一个很好的例子,因为它也是一个有效的 Grails 域对象。
我要做的是在运行时/动态添加另一个约束到 Address 类:
class Address {
String street
String city
String state
String zipCode

static constraints = {
street( nullable: true )
city( blank: false )
state( size: 2..2 )
zipCode( size: 5..6 )
}
}

请注意,新的 zipCode约束?
我知道我可以通过 metaClass 覆盖它来一起更改约束。 ;但是,这里的目标不是在过程中伤害任何人,因此我只想添加到现有的闭包中。

最佳答案

您确实可以在运行时更改约束。

ConstrainedProperty constrainedProperty = Address.constraints.zipCode
constrainedProperty.setSize(5..6)

关于grails - Groovy/Grails : Enhance a Static Closure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1736491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com