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]}"){   

Event メソッドのブレース内に大量のコードがあるため、if else ステートメントでコードを 2 回コピーしたくありません。

たとえば、ドル記号を使用してこれを行うと、呼び出しが引き続き機能しますか?

4

2 に答える 2

2

Groovy での名前付き引数を使用したメソッド呼び出しは、単純Mapにメソッドに a を渡しているため、次のように言えます。

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 に答える