$ grails -v |Версия Grails: 3.3.9
|Версия JVM: 1.8.0_161
Я написал класс util в папке 'src /', а не в grails-app.
def getSelectedColumnCfgs() {
def cfgs = cfgFile.readLines().findAll { it.startsWith('COLUMN:') }.collect { line ->
line[7..-1].trim().split(',').collectEntries {
it.trim().split('=').collect { it.trim() }
}
} // We get a List<Map<String, String>>
cfgs.each { cfg ->
def column = nsTable.columns.find {
it.name == cfg.ns_columm //equals condition behave weird
}
//something else
}
}
В обычном случае при закрытии поиска возвращается объект столбца, имя которого равно cfg.ns_columm (карта), но это не так.Поэтому я попытался выполнить следующее сравнение:
//Doesn't work
columns.find {
println it.name == cfg.ns_column //it dose print a 'true' when they matched
it.name == cfg.ns_column
}
//Works! But why?
columns.find {
boolean flag = it.name == cfg.ns_column
flag
}
Я думаю, в некоторых случаях функция find будет переопределена GORM, но этот код не находится под grails-app, а Column не является классом домена, поэтому любойключ?