retrofit請求網路時,針對泛型解析…
阿新 • • 發佈:2019-01-31
package com.example.administrator.mydemol.util;
import com.google.gson.internal.LinkedTreeMap;
import java.lang.reflect.Field;
import java.util.ArrayList;
import timber.log.Timber;
public class Convert2Bean {
public static ArrayList convert(Class bean,ArrayList
list){
ArrayList result = new ArrayList<>();
//獲取bean物件內的屬性:
Field[] fields = bean.getDeclaredFields();
//迴圈遍歷list,獲取linkedTreeMap
for(int i=0;i
LinkedTreeMap map = (LinkedTreeMap) list.get(i);
try {
T instance = (T) bean.newInstance();
for(Field field : fields)
{
Timber.e("===field=="+field.getType());
Timber.e("==="+(field.getType()==String.class));
field.setAccessible(true);
field.set(instance, map.get(field.getName()));
}
result.add(instance);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return result;
}
}