Existe alguma maneira de eu saber dinamicamente qual o tipo de um Field e pegar esse valor?
A unica maneira que consegui fazer é se vc sabe qual o tipo do Field… No caso, eu não tenho como saber e precisaria pegar esse valor … Tem como?
Existe alguma maneira de eu saber dinamicamente qual o tipo de um Field e pegar esse valor?
A unica maneira que consegui fazer é se vc sabe qual o tipo do Field… No caso, eu não tenho como saber e precisaria pegar esse valor … Tem como?
Invoque o método get pertinente a field.
sim… Até ai eu sei…
O problema é que os campos podem ter tipos primitivos ou não…
O método get pede um parametro Object para ele passar a referencia do valor do Field… e quando passo um Object recebo um java.lang.IllegalArgumentExceptio.
Field[] f = data.get(rowIndex).getClass().getDeclaredFields();
try {
f[columnIndex].setAccessible(true);
Object b = new Object();
f[columnIndex].get(b);
return b;
} catch (Exception e) {
e.printStackTrace();
}
Erro:
java.lang.IllegalArgumentException: Can not set int field MyBeans.FuncionarioShort.rg to java.lang.Object
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37)
Voce pode passar Object.class, e no caso dos primitivos passe como Integer.class, Double.class e etc…