2010-08-12 8 views
1

Si j'ai une classe Java avec les propriétés "firstName" et "lastName", je souhaite attribuer dynamiquement la propriété en fonction des variables. Pour donner un exemple:Affecter dynamiquement une propriété sur un POJO dans Groovy

public class MyClass { 
    public String firstName; 
    public String lastName; 
} 

... 
def varname = "firstName"; 
def value = "Smith"; 
def instance = new MyClass(); 
/* Something like the following */ 
instance.$varname = value; 

Je sais en python que je pourrais utiliser setattr (par exemple, varname, valeur). C'est un peu le contraire de setProperty.

Merci

Répondre

0

de Nevermind, il est

[email protected]"$varname" = value 
+1

BTW, vous pouvez omettre le signe @. Dans ce cas, la propriété est définie via une méthode setter générée dynamiquement. Vous n'avez pas non plus besoin du modificateur d'accès "public", car c'est le comportement par défaut de Groovy. –

0

Vous pouvez également utiliser

instance.setProperty (varname, valeur)

ou peut-être

exemple [varname] = valeur

Questions connexes