ToStringBuilder使用

ToStringBuilder使用1 append nbsp nbsp nbsp ToStringBuil 类主要用于类的格式化输出 ToStringBuil 中 append 方法可以向该类添加基本类型 数组 和对象只有添加的方法才会被 toString 输出 nbsp nbsp importjava math BigDecimal Java 代码 nbsp nbsp import nbsp java util HashSet nbsp nbsp import nbsp j

1、append

     ToStringBuilder类主要用于类的格式化输出。ToStringBuilder中append方法可以向该类添加基本类型、数组、和对象只有添加的方法才会被toString输出

  import java.math.BigDecimal;

Java代码  
收藏代码

  1. import java.util.HashSet;  
  2. import java.util.Set;  
  3.   
  4. import java.math.BigDecimal;  
  5.   
  6. import org.apache.commons.lang.builder.CompareToBuilder;  
  7. import org.apache.commons.lang.builder.EqualsBuilder;  
  8. import org.apache.commons.lang.builder.HashCodeBuilder;  
  9. import org.apache.commons.lang.builder.ToStringBuilder;  
  10.   
  11. class TaxReturn {  
  12.   
  13.   private String ssn;  
  14.   
  15.   private int year;  
  16.   
  17.   private String lastName;  
  18.   
  19.   private BigDecimal taxableIncome;  
  20.   
  21.   public TaxReturn() {  
  22.   }  
  23.   
  24.   public TaxReturn(String pSsn, int pYear, String pLastName, BigDecimal pTaxableIncome) {  
  25.     setSsn(pSsn);  
  26.     setYear(pYear);  
  27.     setLastName(pLastName);  
  28.     setTaxableIncome(pTaxableIncome);  
  29.   }  
  30.   
  31.   public String getSsn() {  
  32.     return ssn;  
  33.   }  
  34.   
  35.   public void setSsn(String pSsn) {  
  36.     ssn = pSsn;  
  37.   }  
  38.   
  39.   public int getYear() {  
  40.     return year;  
  41.   }  
  42.   
  43.   public void setYear(int pYear) {  
  44.     year = pYear;  
  45.   }  
  46.   
  47.   public String getLastName() {  
  48.     return lastName;  
  49.   }  
  50.   
  51.   public void setLastName(String pLastName) {  
  52.     lastName = pLastName;  
  53.   }  
  54.   
  55.   public BigDecimal getTaxableIncome() {  
  56.     return taxableIncome;  
  57.   }  
  58.   
  59.   public void setTaxableIncome(BigDecimal pTaxableIncome) {  
  60.     taxableIncome = pTaxableIncome;  
  61.   }  
  62.   
  63.   public String toString() {  
  64.     return new ToStringBuilder(this).append(“ssn”, ssn).append(“year”, year).append(“lastName”,  
  65.         lastName).toString();  
  66.   }  
  67.   
  68.   public int hashCode() {  
  69.     return new HashCodeBuilder(37).append(ssn).append(year).toHashCode();  
  70.   }  
  71.   
  72.   public boolean equals(Object pObject) {  
  73.     boolean equals = false;  
  74.     if (pObject instanceof TaxReturn) {  
  75.       TaxReturn bean = (TaxReturn) pObject;  
  76.       equals = (new EqualsBuilder().append(ssn, bean.ssn).append(year, bean.year)).isEquals();  
  77.     }  
  78.     return equals;  
  79.   }  
  80.   
  81.   public int compareTo(Object pObject) {  
  82.     return CompareToBuilder.reflectionCompare(this, pObject);  
  83.   }  
  84.   
  85. }  
  86.   
  87. public class MainClass {  
  88.   
  89.   public static void main(String[] pArgs) throws Exception {  
  90.      TaxReturn return1 = new TaxReturn(“012-68-3242”1998“O’Brien”new BigDecimal(43000.00));  
  91.      TaxReturn return2 = new TaxReturn(“012-68-3242”1999“O’Brien”new BigDecimal(45000.00));  
  92.      TaxReturn return3 = new TaxReturn(“012-68-3242”1999“O’Brien”new BigDecimal(53222.00));  
  93.      System.out.println(“ToStringBuilder: “ + return1.toString());  
  94.   }  
  95. }  

运行结果如下:

   ToStringBuilder: TaxReturn@1503a3[ssn=012-68-3242,year=1998,lastName=O’Brien]

 

2、reflectionToString

     把类对应的基本属性和值输出来。

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

Java代码  
收藏代码

  1. import org.apache.commons.lang.builder.HashCodeBuilder;  
  2. import org.apache.commons.lang.builder.ToStringBuilder;  
  3. import org.apache.commons.lang.builder.ToStringStyle;  
  4.   
  5. public class MainClass {  
  6.     public static void main(String[] args) {  
  7.         MyClass one = new MyClass(“Becker”35);  
  8.         MyClass two = new MyClass(“Becker”35);  
  9.         MyClass three = new MyClass(“Agassi”33);  
  10.   
  11.         System.out.println(“One>>>” + one);  
  12.         System.out.println(“Two>>>” + two);  
  13.         System.out.println(“Three>>>” + three);  
  14.   
  15.         System.out.println(“one equals two? “ + one.equals(two));  
  16.         System.out.println(“one equals three? “ + one.equals(three));  
  17.   
  18.         System.out.println(“One HashCode>>> “ + one.hashCode());  
  19.         System.out.println(“Two HashCode>>> “ + two.hashCode());  
  20.         System.out.println(“Three HashCode>>> “ + three.hashCode());  
  21.     }  
  22. }  
  23.   
  24. class MyClass {  
  25.     private String name = null;  
  26.     private int age = 0;  
  27.   
  28.     public MyClass(String name, int age) {  
  29.         this.name = name;  
  30.         this.age = age;  
  31.     }  
  32.   
  33.     public boolean equals(Object obj) {  
  34.         return EqualsBuilder.reflectionEquals(this, obj);  
  35.     }  
  36.   
  37.     public String toString() {  
  38.         return ToStringBuilder.reflectionToString(this,  
  39.             ToStringStyle.MULTI_LINE_STYLE);  
  40.     }  
  41.   
  42.     public int hashCode() {  
  43.         return HashCodeBuilder.reflectionHashCode(this);  
  44.     }  
  45. }  

 运行结果如下:

Java代码  
收藏代码

  1. One>>>MyClass@[  
  2.   name=Becker  
  3.   age=35  
  4. ]  
  5. Two>>>MyClass@1d8957f[  
  6.   name=Becker  
  7.   age=35  
  8. ]  
  9. Three>>>MyClass@3ee284[  
  10.   name=Agassi  
  11.   age=33  
  12. ]  
  13. one equals two? true  
  14. one equals three? false  
  15. One HashCode>>>   
  16. Two HashCode>>>   
  17. Three HashCode>>> –  

转载自: http://javacrazylilin.iteye.com/blog/


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208764.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:49
下一篇 2026年3月19日 上午10:49


相关推荐

  • CSS自定义鼠标样式[通俗易懂]

    CSS自定义鼠标样式[通俗易懂]效果图原理cursor属性:cursor属性规定要显示的光标的类型(形状)。该属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状。使用url,可自定义鼠标图标。cursor:url(‘https://blog-static.cnblogs.com/files/lucas–liu/cat6.ico’),default;自定义图标注意点尺寸最好选择不大于于32*32像素的Opera9.3和Safari3不支持url值图片最好用绝对路径浏览器兼容性不一

    2022年5月31日
    48
  • linux 安装 RabbitMQ「建议收藏」

    下载ErlangRabbitMQ是由erlang语言编写的,所以在安装rabbitMQ之前需要安装Erlang.erlang下载地址:Downloads-Erlang/OTP这里下载23.3版本。下载rabbitMQ在rabbitMQ官网可以看到mq版本对应的erlang的版本。点击上述地址中的rabbitMQ安装指南,可以在里面下载安装包…

    2022年4月7日
    46
  • 多项式曲线拟合之最小二乘法推导[通俗易懂]

    多项式曲线拟合之最小二乘法推导[通俗易懂]1、多项式曲线拟合之最小二乘法1.1问题来源1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的已有观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。只有时年24岁的高斯所计算的谷神星的轨道,被奥地利天文学家海因里希·奥尔伯斯的观测所证实,使天文界从此可以预测到谷神星的精确位置。同样的方法也产生了哈雷彗星等很多天文学成果。高斯使用的方法就是最小二乘法,

    2022年5月17日
    58
  • 5G网络切片技术_什么让我读懂了什么

    5G网络切片技术_什么让我读懂了什么据说人类进入现代,最先被工业化的几种技术之一就是做面包。1921年,人类首次发明了面包切片机,随后切片面包开始流行起来。近100年后的今天,继切片面包之后,人类又将面临一件切片技术上的大事——网络切片。与人类走进工业化一样,网络切片也将是人类信息化史上的一次跨越式迈步。何为网络切片?我们经常把网络比喻为交通,车辆是用户,道路是网络。随着车辆的增多,城市道路变得拥堵不堪。为了缓解交通拥堵,交通部门不得不根据不同的车辆、运营方式进行分流管理,比如设置BRT快速公交通道,非机动车专用通道等。网络亦是如此

    2022年10月3日
    4
  • 在Ubuntu中安装Pycharm轻松搞定[通俗易懂]

    在Ubuntu中安装Pycharm轻松搞定[通俗易懂]说到Python代码编辑器,那肯定是Pycharm最好用了,当然还有Vscode、Atom也是很不错的选择,下面请跟着我进行Pycharm的安装。下载安装包首先必须访问Jetbrains官方网站下载Linux的安装包Pycharm下载地址本文对应Pycharm版本为pycharm-community-2020.2.2点击Download后下载文件名为pycharm-community-2020.2.2.tar.gz解压安装快捷键Ctrl+Alt+T启动终端进入

    2022年8月25日
    11
  • C++中类中同时存在继承以及组合时候,构造函数的构造顺序

    C++中类中同时存在继承以及组合时候,构造函数的构造顺序

    2022年2月7日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号