如何把method.invoke后的返回值转成数组或集合类型?
向大大们请教一个问题,由于method.invoke(obj, new Object[] {})返回的是一个Object类型,当反射执行一个反射回数组的gettter方法后如何把method.invoke(obj, new Object[] {})得到的value转成数组或其它集合类型以便能够再取出里面的某一个成员呢,要求不使用特定类型的某一确定类型[] 进行强制转化。
下面是我写的一个方法,用于执行一个对象的某一getter方法,我的期望是如果getter方法返回的是数组,最终返回数组里的第一个对象,如果现在的 method.invoke(obj, new Object[] {});不能够实现的话,有没有其他的反射用法能够得到方法数组形式的返回值?
private static Object getFieldValueByFieldName(String fieldName,Object obj) {
try {
String Letter = fieldName.substring(0, 1).toUpperCase();
String methodStr = "get" + Letter + fieldName.substring(1);
Method method = obj.getClass().getMethod(methodStr, new Class[] {});
Object value = method.invoke(obj, new Object[] {});
//我希望能完成如下功能的类型转化,但不是使用固定的像int[] 类型的转化,直接写成Object[] val=(Object[])value又抛异常
int[] val=(int[])value;
return val[0];
} catch (Exception e) {
return null;
}
}