java反射机制的应用

来源:互联网 发布:妮维雅柔美润肤霜 知乎 编辑:程序博客网 时间:2024/05/17 22:57
/**
* json格式字符串数据转换成需要的对象为集合数据
* @param classObj
* @param base
* @return
* @throws Exception
*/

public List<T> printJsonList(T classObj, @SuppressWarnings("rawtypes") JsonBase base) throws Exception{
JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(base.getData()));
Field[] fields = classObj.getClass().getDeclaredFields();
String className = classObj.getClass().getSimpleName().toLowerCase().substring(3)+"_";
List<T> list=new ArrayList<T>();
for (Object obj : jsonArray) {
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(obj));
for (Field field : fields) {
String fieldValue = jsonObject.get(className+field.getName()).toString();
String upperCase = field.getName().toUpperCase().charAt(0)+field.getName().substring(1);
//Method m = classObj.getClass().getMethod("get" + upperCase);
Method m = classObj.getClass().getMethod("set"+upperCase,String.class);
                m.invoke(classObj, fieldValue);
}
list.add(classObj);
}
return list;
}

/**
* json格式字符串数据转换成需要的对象为集合数据
* @param classObj
* @param base
* @return
* @throws Exception
*/

public T printJsonAcount(T classObj, @SuppressWarnings("rawtypes") JsonBase base) throws Exception{
Field[] fields = classObj.getClass().getDeclaredFields();
JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(base.getData()));
JSONObject jsonObject = jsonArray.getJSONObject(0);
for (Field field : fields) {
String fieldValue = jsonObject.get("account_"+field.getName()).toString();
if(fieldValue==null||"".equals(fieldValue)){
fieldValue="0";
}
String upperCase = field.getName().toUpperCase().charAt(0)+field.getName().substring(1);
Method m = classObj.getClass().getMethod("set"+upperCase,String.class);
            m.invoke(classObj, fieldValue);
}
return classObj;
}

/**
* 筛选单个对象
* @param classObj
* @param base
* @return
* @throws Exception
*/

public T printJsonObject(T classObj, @SuppressWarnings("rawtypes") JsonBase base) throws Exception{
Field[] fields = classObj.getClass().getDeclaredFields();
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(base.getData()));
for (Field field : fields) {
String fieldValue = jsonObject.get(field.getName()).toString();
String upperCase = field.getName().toUpperCase().charAt(0)+field.getName().substring(1);
//Method m = classObj.getClass().getMethod("get" + upperCase);
Method m = classObj.getClass().getMethod("set"+upperCase,String.class);
            m.invoke(classObj, fieldValue);
}
return classObj;
}
原创粉丝点击