Spring工具類ToStringBuilder用法簡介

轉載:跳轉java

簡單介紹:

一、項目中通常都須要打印日誌,全部實體的toString()方法都是用簡單的"+",由於每"+" 一個就會 new 一個 String 對象,這樣若是系統內存小的話會暴內存。使用ToStringBuilder就能夠避免暴內存這種問題。apache

ToStringBuilder的reflectionToString方法:數組

  logger.info("請求數據:"+ToStringBuilder.reflectionToString(req));app

二、ToStringBuilder在包 common-lang 中,主要用於一個類的格式化輸出。ToStringBuilder類中的append方法能夠向該類添加基本類型、數組和對象 ,只有添加的方法纔會被toString方法輸出。maven

        ToStringStyle類則是對輸出的內容進行格式化。工具

使用例子:

 package test;

    public class User {

        private String name;
        private int age;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
        
        public int getAge() {
            return age;
        }
       
        public void setAge(int age) {
            this.age = age;
        }
  }

下面是ToStringBuilder的使用方法

  System.out.println("-------------ToStringBuilder-------------------------");

    User u = new User();

    u.setAge(25);

    u.setName("zhengtian");

    

  //對象及其屬性一行顯示

    System.out.println(ToStringBuilder.reflectionToString(u));

    System.out.println(ToStringBuilder.reflectionToString(u, ToStringStyle.DEFAULT_STYLE));

    //屬性換行顯示

    System.out.println(ToStringBuilder.reflectionToString(u, ToStringStyle.MULTI_LINE_STYLE));

    //不顯示屬性名,只顯示屬性值,在同一行顯示

    System.out.println(ToStringBuilder.reflectionToString(u, ToStringStyle.NO_FIELD_NAMES_STYLE));

    //對象名稱簡寫

    System.out.println(ToStringBuilder.reflectionToString(u, ToStringStyle.SHORT_PREFIX_STYLE));

    //只顯示屬性

    System.out.println(ToStringBuilder.reflectionToString(u, ToStringStyle.SIMPLE_STYLE));

結果顯示:

-------------ToStringBuilder-------------------------

test.User@141d683[name=zhengtian,age=25]

test.User@141d683[name=zhengtian,age=25]

test.User@141d683[

  name=zhengtian

  age=25

]

test.User@141d683[zhengtian,25]

User[name=zhengtian,age=25]

zhengtian,25

描述:ToStringBuilder比較適合在打日誌時,輸出參數的信息,特別是在參數爲對象時,該工具類可以很方便的自動打印對象中的屬性值

  maven包引入:

1 <dependency>
2     <groupId>org.apache.commons</groupId>
3     <artifactId>commons-lang3</artifactId>
4     <version>3.4</version>
5 </dependency>        
相關文章
相關標籤/搜索