我有这样的代码:
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. _-]+, ]
答案 0 :(得分:1)
似乎so.deviceName
是ArrayList
,没有replaceAll()
方法。请说明如何获取此值,或者只是尝试从此列表中获取第一项,如果您确定它只应该是一个值(使用:deviceName[0]
)。
答案 1 :(得分:0)
我发现了问题。在我的实际代码中,第一个代码块存在一些条件,因此条件失败并且它返回空[]列表一段时间,因此出现问题。