【发布时间】:2011-11-15 17:42:11
【问题描述】:
我有以下 groovy 代码:
dataFile.filterLine() {it =~ /(${searchStr1}|${searchStr2})/ }.each { it ->
println it
it.split { list ->
println "split line: ${list[0]}, ...."
}
}
第一个 println 效果很好——列出了所有匹配的行。然后,拆分会导致错误,实际上是在第二个 println 上。显然它不喜欢 ${list[0]}。但是,我不清楚这有什么问题。
错误是:
No signature of method: org.codehaus.groovy.runtime.DefaultGroovyMethods$4.getAt() is applicable for argument types: (java.lang.Integer) values: [0]
Possible solutions: getAt(java.lang.String), putAt(java.lang.String, java.lang.Object), wait(), grep(), getClass(), wait(long). Stacktrace follows:
谢谢
【问题讨论】:
-
你要拆分的是什么类型的?
-
不确定“.each”会产生什么,一个列表?我在第一个 println 上方添加了一个 println "class is: ${it.getClass()}",它产生了:class is: class org.codehaus.groovy.runtime.DefaultGroovyMethods$4
-
...顺便说一句,我并没有坚持在这里关闭。我只是不想从文件中拆分出我想要的行。
标签: groovy