java中使用反射获取pojo(实体)类的所有字段值
来源:互联网 发布:java工程师工作内容 编辑:程序博客网 时间:2024/05/17 20:10
说起反射,不得不说它实在是太强大了,通过反射就可以轻轻松松拿到各种东东,如果你想在项目中解除对某个类的依赖,可以考虑用反射。
今天跟大家分享的是通过java中的反射,获取pojo类的所有字段值。
为什么要做这个操作的呢?主要是为了重写实体类的toString方法。有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了。这么做的确可以,但是如果你的pojo类有上百个,上千个,你还要一个一个改吗?所以我们需要从新的方向去解决。
因为我们所有的pojo类,都继承一个IdEntity的pojo类。它只有一个id属性,所以如果我在IdEntity中重写了toString方法,那么其他所有继承与IdEntity的pojo类都不用再写了,而且也保证了格式的统一。这里要反射出pojo类的所有字段值,如果字段是其他pojo类的对象时,也要拿过来把所有属性都列出来。
package entity.qx; import java.lang.reflect.Field; /** * @author tq * @version 创建时间:2015年12月16日 下午5:03:08 */ public class EntityToString { /** * @MethodName : getString * @Description : 获取类中所有属性及属性值 * @param o * 操作对象 * @param c * 操作类,用于获取类中的方法 * @return */ public static String getString(Object o, Class< ? > c ) { String result = c.getSimpleName( ) + ":"; // 获取父类,判断是否为实体类 if ( c.getSuperclass( ).getName( ).indexOf( "entity" ) >= 0 ) { result +="\n<" +getString( o , c.getSuperclass( ) )+">,\n"; } // 获取类中的所有定义字段 Field[ ] fields = c.getDeclaredFields( ); // 循环遍历字段,获取字段对应的属性值 for ( Field field : fields ) { // 如果不为空,设置可见性,然后返回 field.setAccessible( true ); try { // 设置字段可见,即可用get方法获取属性值。 result += field.getName( ) + "=" + field.get( o ) +",\n"; } catch ( Exception e ) { // System.out.println("error--------"+methodName+".Reason is:"+e.getMessage()); } } if(result.indexOf( "," )>=0) result = result.substring( 0 , result.length( )-2 ); return result; } }
然后在IdEntity中,重写toString方法即可:
@Override public String toString(){ return EntityToString.getString(this,this.getClass( )); }
这样格式统一了,同时避免了由于代码改动太多而导致出错率上升,最重要的是可以节省大量的时间。以最小的代价完成修改功能,这是很有必要的。
0 0
- java中使用反射获取pojo(实体)类的所有字段值
- java中使用反射获取pojo(实体)类的所有字段值
- java中使用反射机制获取实体类集合的某个属性值
- 使用反射获取一个类的所有方法和字段
- c# 反射 遍历实体的所有字段,ObjectDumper类实现
- Java反射获取实体的所有可见属性值,返回Object数组
- Java反射获取实体的所有可见属性值,返回Object数组
- Kotlin-实体类反射获取字段属性和该属性的值
- java 反射获取类中所有的属性(含父类)
- Java-Reflection反射-获取包括父类在内的所有字段
- Java-Reflection反射-获取包括父类在内的所有字段
- 反射-获取类及其父类中声明的所有字段集合
- java使用MongoDB更新实体类某一字段的值
- java反射(1)获取类的所有
- Java反射代码--02.得到某类的所有字段
- Java反射获取字段、设置字段以及获取字段的值
- Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值
- 枚举,注解,实体类,单元测试,反射对象字段------------举例使用
- Android之Intent的初步认识
- 第五章 简单的数据查询
- 总结2015之Spark篇:新生态系统的形成
- spring boot 将dependency 从fat jar 中抽取出来
- linux链接--硬链接,软链接
- java中使用反射获取pojo(实体)类的所有字段值
- Native Service的实现
- Android中将AS的项目导入到eclipse中,stye中常常报错
- XML属性移动删除
- 交换排序
- c++架构
- hdoj Watch The Movie 3496 (二维01背包)好题
- jQuery学习--添加元素
- Could not open ServletContext resource报错解决方法