ToStringBuilder.reflectionToString

1、

项目中一般都需要打印日志,所有实体的toString()方法都是用简单的"+",因为每"+" 一个就会 new 一个 String 对象,这样如果系统内存小的话会暴内存。使用ToStringBuilder就可以避免暴内存这种问题。

ToStringBuilder的reflectionToString方法:

  logger.info("请求数据:"+ToStringBuilder.reflectionToString(req));

2、

ToStringBuilder在包 common-lang 中,主要用于一个类的格式化输出。ToStringBuilder类中的append方法可以向该类添加基本类型、数组和对象 ,只有添加的方法才会被toString方法输出。
        ToStringStyle类则是对输出的内容进行格式化。

demo

import org.apache.commons.lang.builder.ToStringBuilder;

public class Person {

    private String name;
    private int sex;
    private String addr;

    public String getAddr() {
        return addr;
    }
    public void setAddr(String addr) {
        this.addr = addr;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getSex() {
        return sex;
    }
    public void setSex(int sex) {
        this.sex = sex;
    }

    @Override
    public String toString(){
        return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
    }
}

tester

public class PersonTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("watchdb");
        person.setSex(1);
        person.setAddr("shanghai.zhangjiang");
        System.out.println(person.toString());

    }

}

ToStringStyle参数说明:

1. DEFAULT_STYLE
   [email protected][name=watchdb,sex=1,addr=shanghai.zhangjiang]
2. MULTI_LINE_STYLE

[email protected][
name=watchdb
sex=1
addr=shanghai.zhangjiang
]

3. NO_FIELD_NAMES_STYLE
   [email protected][watchdb,1,shanghai.zhangjiang]
4. SHORT_PREFIX_STYLE
  Person[name=watchdb,sex=1,addr=shanghai.zhangjiang]
5. SIMPLE_STYLE
   watchdb,1,shanghai.zhangjiang

时间: 2024-11-25 07:43:47

ToStringBuilder.reflectionToString的相关文章

ToStringBuilder介绍

ToStringBuilder简单介绍 ToStringBuilder是用于构建一个类的toString字符串的工具类,提供了多种不同的格式,同时还能自定义打印哪些变量. ToStringBuilder主要方法 append()方法: 该方法用于自定义添加需要打印哪些变量,只有使用append添加的变量才会在toString函数中打印. reflectionToString()方法: 该方法使用反射机制打印一个类中的所有变量,该函数还提供一个变量style,用于指定使用什么样的格式打印变量,几种

ToStringBuilder 学习

一.简介与引入   1.ToStringBuilder.HashCodeBuilder.EqualsBuilder.ToStringStyle.ReflectionToStringBuilder.CompareToBuilder等这些类都是位于commons-lang.jar下面的,所以要使用这些类一定要导入commons-lang.jar.   2.为什么要使用ToStringBuilder?     系统中一般都要打印日志的,因为所有实体的toString()方法 都用的是简单的"+&quo

ToStringBuilder学习(一):常用方法介绍

一.简介与引入    1.ToStringBuilder.HashCodeBuilder.EqualsBuilder.ToStringStyle.ReflectionToStringBuilder.CompareToBuilder等这些类都是位于commons-lang.jar下面的,所以要使用这些类一定要导入commons-lang.jar. 2.为什么要使用ToStringBuilder? 系统中一般都要打印日志的,因为所有实体的toString()方法 都用的是简单的"+",因为

[Java][activiti]同步或者重构activiti identify用户数据的方法

同步或者重构Activiti Identify用户数据的多种方案比较 相信每个涉及到用户的系统都有一套用户权限管理平台或者模块,用来维护用户以及在系统内的功能.数据权限,我们使用的Activiti工作流引擎配套设计了包括User.Group的Identify模块,怎么和业务数据同步呢,这个问题是每个新人必问的问题之一,下面介绍几种同步方案,最后总结比较. 如果你在考虑直接使用Activiti引擎的Identify模块作为系统的用户数据管理模块,您真是奇才-开个玩笑 方案一:调用IdentifyS

toString()

普通javaBean高速重写toString()方法: import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; public String toString() { return ToStringBuilder.reflectionToString(this,ToStringStyle.SHORT_PREFIX_STYLE); }

第四章 服务容错 - 引入hystrix

上一节,描述了服务发现.负载均衡以及服务之间的调用.到这里,加上第二节的服务注册,整个微服务的架构就已经搭建出来了,即功能性需求就完成了.从本节开始的记录其实全部都是非功能性需求. 一.集群容错 技术选型:hystrix.(就是上图中熔断器) 熔断的作用: 第一个作用: 假设有两台服务器server1(假设可以处理的请求阈值是1W请求)和server2,在server1上注册了三个服务service1.service2.service3,在server2上注册了一个服务service4,假设se

模板模式讲解二

一.何为模板 在阎宏博士的<JAVA与模式>一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.这就是模板方法模式的用意. 二.模式结构设计 父类定义成一个抽象类,有一个具体实现方法,在这个具体实现方法会去调用此抽象类定义的抽象方法,这些抽象方法由子类继承实现,因为

java对象传递小解析

先上代码: 1 import org.apache.commons.lang.builder.ToStringBuilder; 2 import org.apache.commons.lang.builder.ToStringStyle; 3 import org.slf4j.Logger; 4 import org.slf4j.LoggerFactory; 5 6 /** 7 * 引用传递demo 8 * @author lishaohua 9 * time : 2016-3-24 下午5:1

memcached演练(2) 访问memcached服务

通过上节<memcached演练(1) 搭建memcached服务>,已经成功在linux虚拟机上安装了memcached服务,并设置了自启动. STAT version 1.4.29 Mem:          1891 主要内容 使用telnet命令行工具,操作memcached服务 使用java spymemcached工具访问memcached服务 监控插入不同数据量的数据,响应时间 监控memcached主机繁忙&清闲对比情况 调整memcached的内存指标,插入相同的数据