Apache Commons 项目运用 - toString篇

原创 2012年03月29日 21:31:39
对象的字符串表示
Object 的 toString 方法的默认实现返回对象的完全限定名称,后面跟上一个 @ 字符,然后是对象的散列码的值。您可能早就明白,这对于区分不同的对象帮助不大。Commons Lang 有一个方便的 ToStringBuilder 类,这个类可帮助构建可读性更强的 toString 结果。
构建 toString
您可能已经不止一次编写过 toString 方法 — 我就是这样。这些方法并不复杂,编写起来很难出错。但是,它们也可能令人讨厌。由于您的 Account 对象已经依赖于 Commons Lang 库,让我们看看 ToStringBuilder 的实际效果。
ToStringBuilder 与我在前面谈到的其他 3 个类相似。您可以创建它的一个实例,附加一些属性,然后调用 toString。就是这样!
覆盖 toString 方法,添加例 24 中的代码:

例 24. 使用 ToStringBuilder 
					
public String toString() {
 return new ToStringBuilder(this)。append("id", this.id)。
  .append("firstName", this.firstName)
   .append("lastName", this.lastName)
    .append("emailAddress", this.emailAddress)
     .append("creationDate", this.creationDate)
      .toString();
}

您可以总是利用反射,如例 25 所示:

例 25. 使用 ToStringBuilder 的反射 API
					
public String toString() {
 return ToStringBuilder.reflectionToString(this);
}

无论您选择如何使用 ToStringBuilder,调用 toString 总会产生一个可读性更强的 String。例如,看看例 26 中的对象实例:

例 26. 一个惟一的 Account 实例
					
new Account(10, "Andrew", "Glover", "ajg@me.com", now);

如例 27 所示,输出的可读性很好:

例 27. ToStringBuilder 的输出
					
com.acme.app.Account@47858e[
   id=10,firstName=Andrew,lastName=Glover,emailAddress=ajg@me.com,
   creationDate=Tue Nov 11 17:20:08 EST 2008]

如果您不喜欢对象的这种 String 表示,Commons Lang 库还有一些 helper 类可帮助定制输出。例如,使用 ToStringBuilder 可以在日志文件中一致地显示对象实例。

Apache Commons 项目运用 - equals篇

Commons Lang 是 Apache Commons 的一个组件,后者是一个宏大的项目,其中的很多子项目涉及到 Java? 语言软件开发的不同的方面。Commons Lang 扩展了标准 jav...

Apache Commons 项目运用 - Comparable篇

相对的 comparable 另一个有趣的方法也有一个相当正式的契约,那就是 Comparable 接口的 compareTo 方法。如果要控制特定的对象如何排序,那么这个接口非常重要。在本节中,您将...

Apache Commons 项目运用 - hashCode篇

对象的散列 实现一个适当的 equals 方法后别忘了还要覆盖 hashCode。本节展示如何操作。 构建 hashCode hashCode 方法也有一个契约,但是不像 equals 的契约那样正式...

apache commons项目,常用组件包介绍

简介:Apache Commons项目是专门为共享正确的一个主要目标是建立和维护可重用的Java组件。共享正确的是一个地方的合作和交流,从整个Apache社区的开发人员一起工作项目,由Apache项目...

Apache下的Commons项目下的DBUtils中的QueryRunner使用的例子

这几天使用了apache下的commons项目下的子项目dbutils,十分的小巧灵活,只用几个小例子。就可以直接上手使用了。。 不多说了直接上代码了。。 @Test public void q...

Apache Commons-SCXML系列之项目介绍

Apache Commons 工具包比较多,具体可以参看Apache Commons官网。这里只讨论SCXMLFAQ :SCXML 是什么? SCXML(State Chart XML),简单地说...

Apache Commons项目介绍

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。 Commons BeanUtils 提供对Java反射和自省API的包装。 依赖包:Co...

Apache Commons Lang包比较常用的项目

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。我选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,我只是做了一个汇总整理。 htt...

maven使用mvn命令创建项目异常java.lang.NoClassDefFoundError: org/apache/commons/collections/ExtendedProperties

命令:mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-gri zzly2 -DarchetypeGroupId=org.g...

java项目中添加邮件发送功能(使用apache commons mail开源项目)

在java项目中添加邮件发送功能 先下载jar包添加到项目中 apache commons mail开源项目JAR下载 代码示例: package com.util.mail; impor...
  • zjx88
  • zjx88
  • 2013年05月17日 19:53
  • 2062
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache Commons 项目运用 - toString篇
举报原因:
原因补充:

(最多只允许输入30个字)