文档章节

java反射覆写toString方法实现输出实体类属性值

指尖残雪
 指尖残雪
发布于 2016/05/22 23:56
字数 261
阅读 31
收藏 0
覆写java实体类toString的方法,使用反射技术输出全部属性的值(包括父类)。
前提条件:两个满足一个就行
1、实体类都继承同一个父类,在父类中覆写toString方法
2、在需要的实体类中覆写toString方法(如果实体类比较多重复代码也多)


ReflectToStringUtil.toStringUtil(this,true|false);
this表示当前对象,直接传入this就可以不需要更改。
TRUE|FALSE:是否输出包含null的属性。如果是TRUE,则类属性值为空的内容页输出,否则只输出类属性不为空的内容。

工具类:


package org.dyb.util;

import java.lang.reflect.Field;

public class ReflectToStringUtil {

    static StringBuffer sb = new StringBuffer();

    public static String toStringUtil(Object clazs,boolean isOutputNull) {

        getParamAndValue(clazs, clazs.getClass(), isOutputNull);

        return sb.toString();
    }

    private static void getParamAndValue(Object clazs, Class<?> clazz,boolean isOutputNull) {
        
        
        Class<?> sc = clazz.getSuperclass();
        Field[] sfields = sc.getDeclaredFields();
        if (sfields.length > 0) {
            getParamAndValue(clazs, sc, isOutputNull);
        }
        Field[] fields = clazz.getDeclaredFields();
        for (Field f : fields) {
            f.setAccessible(true);
            try {
                if (null != f.get(clazs)||isOutputNull){
                    sb.append(f.getName() + "=" + f.get(clazs) + "\n");
                }
            } catch (IllegalArgumentException | IllegalAccessException e) {
                e.printStackTrace();
            }
        }
    }

}

使用:

public String toString() {
        return return ReflectToStringUtil.toStringUtil(this,false);
    }


本文转载自:http://blog.csdn.net/bq1073100909/article/details/48413337

共有 人打赏支持
指尖残雪
粉丝 7
博文 73
码字总数 0
作品 0
上海
后端工程师
Java拾遗:006 - Java反射与内省

反射 Java中提供了一套精心设计的工具集,以便编写能够动态操纵Java代码的程序,这套工具集就是反射(reflective)。 反射作用 能够分析类能力的程序称为反射,反射机制功能非常强大,甚至能...

一别丶经年
08/04
0
0
Hibernate反射DAO模式

在持久层框架中,如果我们要像简单的JDBC连接数据库那样写一个通用的Dao方法的话,那么把JDBC简单的业务逻辑搬到hibernate持久层框架中,当然是不可能的,这里主要的问题就在于hibernate持久...

zretc
2013/07/19
0
0
Thread源码分析-java8

1.Thread特性分析 守护线程Daemon 2种方式创建一个可执行线程 线程名字 线程ID 线程优先级 线程状态6种 浅拷贝 2. 类、方法、字段分析 实现接口和继承类 只实现了一个接口Runnable threadLo...

caoxiaohong1005
05/14
0
0
Guava学习笔记 第3个记录(复写的Object常用方法)

在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这几个方法的工具类, G...

heroShane
2014/02/12
0
0
利用java的反射来实现java的类对象转化为json对象

//在写程序的时候我们可以使用反射来使程序看起来更具有“灵性”,也就是可移植性比较强!反射就是能够让程序员在程序运行的时候可以获取对象类型信息。 举个简单的列子: import java.lang.r...

zongjh
2014/04/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

io流

码农屌丝
4分钟前
0
0
SpringBoot基础篇之重名Bean的解决与多实例选择

更多Spring文章,欢迎点击 一灰灰Blog-Spring专题 当通过接口的方式注入Bean时,如果有多个子类的bean存在时,具体哪个bean会被注入呢?系统中能否存在两个重名的bean呢?如果可以,那么怎么...

小灰灰Blog
14分钟前
0
0
记录一次dubbo项目实战

一、案例说明 存在2个系统,A系统和B系统,A系统调用B系统的接口获取数据,用于查询用户列表。 二、环境搭建 安装zookeeper,解压(zookeeper-3.4.8.tar.gz)得到如下: 然后进入conf将zoo_s...

Java烂猪皮
18分钟前
0
0
拜托,别再问怎么深入学习分布式架构了!

由于分布式系统所涉及到的领域众多,知识庞杂,很多新人在最初往往找不到头绪,不知道从何处下手来一步步学习分布式架构。 本文试图通过一个最简单的、常用的分布式系统,来阐述分布式系统中...

Java架构资源分享
19分钟前
0
0
《netty入门与实战》笔记-05:心跳与空闲检测

本小节,我们一起探讨最后一个话题:心跳与空闲检测 首先,我们来看一下,客户端与服务端之间的网络会存在什么问题? 1. 网络问题 下图是网络应用程序普遍会遇到的一个问题:连接假死 连接假...

Funcy1122
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部