Java 遍历 class 的域
@Data
static class RunnerO{
//任务启动时刻
private String startTime;
//任务结束时刻
private String endTime;
//任务总计耗时
private String totalCosts;
//任务平均流量
private String byteSpeedPerSecond;
//记录写入速度
private String recordSpeedPerSecond;
//读出记录总数
private String countSuccess;
//读写失败总数
private String countFail;
private long totalBytes;
//文件名
private String fileName;
}
// 遍历RunnerO类,找到所有get方法,由类中域名和值生成Json的ArrayList
List<Map<String,String>> resultList = new ArrayList<>();
Field[] declaredFields = RunnerO.class.getDeclaredFields();
for (int i=0; i<declaredFields.length; i++){
Field field = declaredFields[i];
String fieldName = field.getName();
String methodName = "";
for (Method method : RunnerO.class.getMethods()){
if (method.getName().contains(fieldName.substring(1)) && method.getName().contains("get") ){
methodName = method.getName();
break;
}
}
Method method = null;
try {
method = RunnerO.class.getMethod(methodName);
String value = String.valueOf(method.invoke(ro));
Map<String,String> map = new HashMap<>();
map.put("var_name",fieldName);
map.put("sql_def",value);
resultList.add(map);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
return JSON.toJSONString(resultList);
展开阅读全文
版权声明:
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。