它永远不会被使用

时间:2015-04-08 10:58:09

标签: grails if-statement

我正在与Grails做一些工作,我不能通过其他部分来完成程序。我的代码如下

while (pois.hasNext()){
    def poi=pois.next()
    def site = Site.get(poi.site)
    if (!sites.contains(site.id)){
        sites.add([id:site.id.toString(),name:site.name])
    }else{
        println("It has been previously added")
    }
}

我应该检查我的数据库

1 个答案:

答案 0 :(得分:1)

From doc

  

如果此集合包含指定的元素,则返回true。更正式地,当且仅当此集合包含至少一个元素e时才返回true(o == null?e == null:o.equals(e))。

您的收藏集包含 siteId:siteName,并且您正在尝试检查它是否包含siteId

您应该再添加一个仅包含siteId的集合。

或者,您将更改sites上的Map,您的代码将如下所示:

if (!sites.containsKey(site.id)){
    sites.put(site.id.toString(), site.name)
}else{
    println("It has been previously added")
}

或者,您应该检查集合中的所有元素。

def isExist = false;
for (def element: sites) {
   if(elemtn.id == site.id) {
       isExist = true;
   }
}

if (!isExist){
    sites.add([id:site.id.toString(),name:site.name])
}else{
    println("It has been previously added")
}