0

我想要一个方法调用if !row[connected].equals("")

然后

Event(id: "event_${row[eventid]}", externalId: "event_${row[eventid]}", connected: row[connected]){   

if row[connected].equals("")

然后

Event(id: "event_${row[eventid]}", externalId: "event_${row[eventid]}"){   

我不想在 if else 语句中复制代码两次,因为 Event 方法的大括号内有大量代码

例如,我可以简单地使用美元符号来执行此操作,以便通话仍然有效吗?

4

2 回答 2

2

Groovy 中使用命名参数的方法调用只是将 a 传递Map给方法,所以你可以说

def eventParams = [
  id: "event_${row[eventid]}", externalId: "event_${row[eventid]}"
]
if(row[connected]) { // empty string is Groovy-false, non-empty is true
  eventParams.connected = row[connected]
}

Event(eventParams)
于 2013-06-11T21:05:34.467 回答
1

或者厚颜无耻的单线:

Event( [ id        : "event_${row[eventid]}", 
         externalId: "event_${row[eventid]}" ] << 
           row[connected] == '' ? [:] : [ connected: row[connected] ] )
于 2013-06-11T21:08:57.360 回答