Setting a value into a object using reflection

Posted by marionmaiden on Stack Overflow See other posts from Stack Overflow or by marionmaiden
Published on 2010-04-28T19:48:56Z Indexed on 2010/04/28 19:57 UTC
Read the original article Hit count: 340

Filed under:
|
|

Hello

I have an object that has a lot of attributes, each one with it's getter and setter. Each attribute has a non primitive type, that I don't know at runtime.

For example, what I have is this:

public class a{

    private typeA attr1;
    private typeB attr2;

    public typeA getAttr1(){ return attr1; }
    public typeB getAttr2(){ return attr2; }

    public void setAttr1(typeA at){ attr1 = at; }
    public void setAttr2(typeB at){ attr2 = at; }
}

public class typeA{
    public typeA(){
        // doesn't matter
    }
}

public class typeB{
    public typeB(){
        // doesn't matter
    }
}

So, using reflection, I obtained the setter method for an attribute. Setting a value in the standard way is something like this:

a test = new a();
a.setAttr1(new typeA());

But how can I do this using reflection? I already got the setAttr1() method using reflection, but I don't know how to create a new typeA object to be inserted in the setter.

© Stack Overflow or respective owner

Related posts about java

Related posts about reflection