Please,

eu estou passando para o metodo compara :

        TesteA obj = new TesteA("Rita", "9103", new Date(System.currentTimeMillis()));

Quando eu executo o programa dá esse erro :

    setter = public void teste.reflect.TesteA.setTelefone(java.lang.String)
    getter = public void teste.reflect.TesteA.setTelefone(java.lang.String)
    java.lang.IllegalArgumentException: object is not an instance of declaring class

public void compara(Object obj) {
int i = 0;
try {
    Class cls = obj.getClass();
    BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
    PropertyDescriptor props[] = beanInfo.getPropertyDescriptors();
    Method setter = null;
    Method getter = null;
    for (int j = 0; j < props.length; j++) {
        getter = props[j].getReadMethod();
        setter = props[j].getWriteMethod();
        System.out.println("setter = " + setter);
        System.out.println("getter = " + setter);
        if (setter != null) {
            setter.invoke(this, new Object[] { getter.invoke(obj, new Object[]{}) });
        }
        break;
    }
} catch (Throwable e) {
System.err.println(e);
}

Rita Fernandes
Ministério da Saúde - DATASUS


Responder a