Ho un oggetto con diversi campi,Groovy: Avere un nome di campo, è necessario impostare il valore e non vogliono usare l'interruttore
class TestObj {
def field1
def field2
}
ho una coppia di valori v1 = "Field1" e v2 = "valore2" Vorrei impostare v2 nel campo appropriato in base al nome di v1, ma preferirei non doverlo fare con un interruttore o se le istruzioni, continuo a pensare che ci deve essere un "molto più groovy "modo di conseguire il risultato altro che fare qualcosa di simile:
setValues(def fieldName, def fieldVal) {
if (fieldName.equals("field1")) {
field1 = fieldVal
}
if (fieldName.equals("field2")) {
field2 = fieldVal
}
}
ho provato a fare questo:
setValues(def fieldName, def fieldVal) {
this['${fieldName}'] = fieldVal
}
Tuttavia questo non funziona, dicendo che non c'è alcuna proprietà $ {} nomeCampo
Grazie.
Ok, questo funziona: questo [ "$ {fieldName}"] = fieldVal –
'' è stringhe normali e non funzionerà con le macro, '$ è 'sarà semplicemente' $ is 'mentre "$ is" si risolverà nel valore della variabile è. – xlson