6
我有這樣一個類:獲取所有對象的ID列表中的
class Foo {
String bar
}
我試圖讓所有的Foo
對象,其bar
字符串是列表bars
的ID。我已經嘗試過多種方法,總是收到了同樣的錯誤:
java.lang.String cannot be cast to java.util.Collection
一些我已經試過的東西:
def ids = Foo.findAllByBarInList(bars)*.id
def ids = Foo.findAllByBarInList(bars).collect{ it.id }
def ids = Foo.findAllByBarInList(bars).collect{ it -> it?.id }
UPDATE:
我正在bars
與split如此它是一個數組,而不是一個列表。它把我扔了,因爲Foo.findAllByBarInList(bars)
返回我的Foo
對象就好了,只有當我試圖收集ID時纔會失敗。我現在使bars
與tokenize,而一切都很好。
我將groovy標記添加回此問題,因爲'collect'方法和spread運算符'* .'都基於groovy。 – ubiquibacon 2012-07-17 18:54:06
您確定您正在檢查的列表是否正確設置爲列表?使用'def ids = Foo.findAllByBarInList(bars)*。id'適用於我。 – Kelly 2012-07-17 18:56:50
自從Grails使用Groovy以來,我不再使用Groovy標籤,因此它不是必需的,它只是在Grails中使用Groovy,而不是Groovy特定的問題。沒有Grails經驗的Groovy專家無法爲您提供幫助。同樣,你可以省略Java,GORM,Hibernate,Spring,編程標籤;) – 2012-07-17 18:58:45