tags:

views:

23

answers:

2

If I have a Java class with the properties "firstName" and "lastName", I want to dynamically assign the property based on variables. To give an example:

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;

I know in python I could use setattr(instance, varname, value). This is kind of the opposite of setProperty.

Thanks

A: 

Nevermind, it's

instance.@"$varname" = value
Mike Axiak
BTW, you can omit the @ sign. In this case, the property is set via a dynamically generated setter method. You also don't need the "public" access modifier, as this is Groovy's default.
Christoph Metzendorf
A: 

You could also use

instance.setProperty(varname,value)

or maybe

instance[varname] = value

tweber