小编How*_*wes的帖子

使用正则表达式替换简单的Groovy

我一直在阅读正则表达式,我认为这会起作用,但它似乎不想工作.我需要做的就是将电话号码中的前导1删除(如果存在).

所以:

def mphone = 1+555-555-5555
mphone.replace(/^1/, "")
Run Code Online (Sandbox Code Playgroud)

这个输出不应该+ 555-555-5555吗?

regex groovy

32
推荐指数
2
解决办法
7万
查看次数

Inno设置 - 设置Java环境变量

我正在使用Inno安装程序为我正在处理的项目创建一个安装程序,我需要它来设置java环境变量,这样当它们运行cmd时,它们不会得到java not found错误,或类似的东西.

我找到了一些与Inno Setup和设置环境变量相关的帖子,但有没有人知道这个实例特有的东西?

inno-setup environment-variables

6
推荐指数
1
解决办法
6192
查看次数

Grails 域验证器:两个字段,其中一个可以为空,但不能同时为空

我有一个域,其中有两个字段可以为空,但不能同时为空。所以像这样的事情

class Character {
    Association association
    String otherAssociation
    static constraints = {
        association (validator: {val, obj->  if (!val && !obj.otherAssociation) return 'league.association.mustbeone'})
        otherAssociation (validator: {val, obj->  if (!val && !obj.association) return 'league.association.mustbeone'})
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行如下测试时,我只会失败

void testCreateWithAssociation() {
   def assoc = new Association(name:'Fake Association').save()
   def assoccha = new Character(association:assoc).save()

   assert assoccha
}
void testCreateWithoutAssociation() {
    def cha = new Character(otherAssociation:'Fake Association').save()
    assert cha
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑 看起来如果我将代码分解为如下所示:

def assoc = new Association(name:'Fake Association')
assoc.save()
Run Code Online (Sandbox Code Playgroud)

一切正常。但现在我想知道为什么我不能像在其他测试中那样将 .save() 放在同一行中并且它可以工作。

validation grails unit-testing

2
推荐指数
1
解决办法
669
查看次数

Grails找到Domain然后保存它

我想要做的是找到一个域,然后创建一个域或保存预先存在的域.这是我目前正在使用的代码(在此项目中,skeleton是包名称):

    def save() {
        Class lob = grailsApplication.getDomainClass('skeleton.'+params.lob.name)
        def instance = lob.get(params.lob.id)
        if (instance){
            params.data.each { name, value ->
                if (instance.metaClass.hasProperty(name)){
                    instance[name] = value
                }
            }
        }else{
            instance = new lob()
            params.data.each { name, value ->
                if (instance.metaClass.hasProperty(name)){
                    instance[name] = value
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.任何人都可以帮我解决这个问题吗?

grails grails-domain-class

1
推荐指数
1
解决办法
360
查看次数