反射,获取类的属性以及get方法
2024-10-09 00:04:13
vo实体类:
public class Result { /***
* 返回结果code
* ok:10000
* error:20000
*/
private String code; /***
* 返回描述
*/
private String msg; public String getCode() {
return code;
} public void setCode(String code) {
this.code = code;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} @Override
public String toString() {
return "Result{" +
"code='" + code + '\'' +
", msg='" + msg + '\'' +
'}';
}
}
测试类:
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier; /**
* @author create by lxn
* @date 2018/4/19 11:22
**/
public class Test { public static void main(String[] args) throws Exception { Result result = new Result();
result.setCode("10000");
result.setMsg("成功");
System.out.println("属性-----");
System.out.println("方法-----");
Method[] declaredMethods = Result.class.getDeclaredMethods();
for (int i = 0; i < declaredMethods.length; i++) {
String name = declaredMethods[i].getName();
System.out.println(name);
String mod = Modifier.toString(declaredMethods[i].getModifiers()); // 取得访问权限
String metName = declaredMethods[i].getName(); // 取得方法名称
}
System.out.println("类名-----");
String filename = Result.class.getSimpleName().toLowerCase();
System.out.println(filename);
StringBuffer sb = new StringBuffer();
sb.append("<date>");
sb.append("<"+filename+">");
Field[] fields = Result.class.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
sb.append("<"+name+">");
Method m = Result.class.getMethod("get" +upperCase1th(name));
String value = (String) m.invoke(result);
sb.append(value);
sb.append("</"+name+">");
System.out.println(name);
}
sb.append("</"+filename+">");
sb.append("</date>");
System.out.println("拼装的xml:"+sb.toString());
} public static String upperCase1th(String str){
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
}
输出结果:
拼装的xml:<date><result><code>10000</code><msg>成功</msg></result></date>
最新文章
- UI
- 未能加载包“Microsoft SQL Server Data Tools”
- 在eclipse中使用第三方库总结
- maven总结1
- 【OpenOffice+swftools】在线预览环境的搭建和xpdf中文包的配置
- 《HTML5与CSS3基础教程》学习笔记 ——Three Day
- linux命令——磁盘管理cd
- ThinkPHP3.2.3中三大自动中的缺陷问题
- jsp、Servlet相关知识介绍(转)
- javascript语句语义大全(5)
- C++ 头文件系列(forward_list)
- 基于 HTML5 的 3D 工控隧道案例
- 变量新声明之let、const
- 深入理解redis数据类型
- JVM系列2:垃圾收集器与内存分配策略
- Django组件(五) Django之ContentType组件
- web前端开发浏览器兼容性处理大全
- java 操作zookeeper
- linux下查看配置信息命令
- Advanced RESTClient插件安装 google浏览器