没有方法签名:java.util.ArrayList.replaceAll()

时间:2014-03-13 05:25:24

标签: grails groovy grails-2.0

我有这样的代码:

soData =
        [   deviceId:so.deviceId,
            deviceName:so.deviceName,
            description:so.description,
        ]



soData.each() { key, value ->
    if(value=="null"|| value==null){
        deviceData.put(key, "")
    }
}



soData?.deviceName?.replaceAll("[^a-zA-Z0-9. _-]+","").replaceAll(" ", "_")

我收到的错误就像不一致

No signature of method: java.util.ArrayList.replaceAll() is applicable for argument types: (java.lang.String, java.lang.String) values: [[^a-zA-Z0-9. _-]+, ]. Stacktrace follows:
groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.replaceAll() is applicable for argument types: (java.lang.String, java.lang.String) values: [[^a-zA-Z0-9. _-]+, ]

2 个答案:

答案 0 :(得分:1)

似乎so.deviceNameArrayList,没有replaceAll()方法。请说明如何获取此值,或者只是尝试从此列表中获取第一项,如果您确定它只应该是一个值(使用:deviceName[0])。

答案 1 :(得分:0)

我发现了问题。在我的实际代码中,第一个代码块存在一些条件,因此条件失败并且它返回空[]列表一段时间,因此出现问题。