java中遍历实体类属性和类型
2024-08-29 19:43:26
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
Field[] field = model.getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组
for(int j=0 ; j<field.length ; j++){ //遍历所有属性
String name = field[j].getName(); //获取属性的名字
System.out.println("attribute name:"+name);
name = name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法
String type = field[j].getGenericType().toString(); //获取属性的类型
if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get"+name);
String value = (String) m.invoke(model); //调用getter方法获取属性值
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Integer")){
Method m = model.getClass().getMethod("get"+name);
Integer value = (Integer) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Short")){
Method m = model.getClass().getMethod("get"+name);
Short value = (Short) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value); }
}
if(type.equals("class java.lang.Double")){
Method m = model.getClass().getMethod("get"+name);
Double value = (Double) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Boolean")){
Method m = model.getClass().getMethod("get"+name);
Boolean value = (Boolean) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.util.Date")){
Method m = model.getClass().getMethod("get"+name);
Date value = (Date) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value.toLocaleString());
}
}
}
}
最新文章
- 一些VS2013下使用QT和MFC的错误解决方案
- python之初级学习
- 何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題
- 谈谈jQuery之绑定事件
- css3 transition effect(其它效果)
- css3 animation 实现环形路径平移动画
- MyEclipse常用设置
- jeditable参数详解
- 局部化原理(Laplace渐进估计方法)
- TeeChart的最小步长和最大步长
- [每日一题] OCP1z0-047 :2013-08-01 正则表达式--- REGEXP_REPLACE 函数
- ASP.NET Web API 基础篇1
- 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)
- python做数据驱动
- 如何快速将一个list<;a>;集合中的部分字段值组合成新的的list<;b>;部分*
- 【blog】SpringBoot如何搭建聚合项目
- dubbo系列二:dubbo常用功能总结
- 包的作用域(public、private)
- Web Api:基于RESTful标准
- 我的常用笔记(GetAndroid,ADBDemo,GetSJ,GetTB)
热门文章
- HDU 1231.最大连续子序列-dp+位置标记
- NOIP2012 D2 T2借教室
- Kail Linux渗透测试教程之免杀Payload生成工具Veil
- php获取当前域名、主机、URL、端口、参数、网址、路径、代理等【转】
- [BZOJ2878][NOI2012]迷失游乐园(环套树DP+概率)
- POJ3233 Matrix Power Series 矩阵乘法
- 【动态规划/多重背包问题】POJ1014-Dividing
- bzoj 1045
- bzoj 1598: [Usaco2008 Mar]牛跑步 -- 第k短路,A*
- bzoj 1911: [Apio2010]特别行动队 -- 斜率优化