- 浏览: 7935503 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder、CompareToBuilder等这些类都是位于commons-lang.jar下面的,所以要使用这些类一定要导入commons-lang.jar。
为什么要使用ToStringBuilder?
系统中一般都要打印日志的,因为所有实体的toString()方法 都用的是简单的"+",因为每"+" 一个就会 new 一个 String 对象,这样如果系统内存小的话会暴内存(前提系统实体比较多)。使用ToStringBuilder就可以避免暴内存这种问题的。
ToStringBuilder的append方法
ToStringBuilder类主要用于类的格式化输出。ToStringBuilder中append方法可以向该类添加基本类型、数组、和对象,只有添加的方法才会被toString输出。如:
class TaxReturn {
private String ssn;
private int year;
private String lastName;
private BigDecimal taxableIncome;
// get/set方法省略
public TaxReturn() {
}
public TaxReturn(String pSsn, int pYear, String pLastName, BigDecimal pTaxableIncome) {
setSsn(pSsn);
setYear(pYear);
setLastName(pLastName);
setTaxableIncome(pTaxableIncome);
}
public String toString() {
return new ToStringBuilder(this).append("ssn", ssn).append("year", year).append("lastName",
lastName).toString();
}
public int hashCode() {
return new HashCodeBuilder(3, 7).append(ssn).append(year).toHashCode();
}
public boolean equals(Object pObject) {
boolean equals = false;
if (pObject instanceof TaxReturn) {
TaxReturn bean = (TaxReturn) pObject;
equals = (new EqualsBuilder().append(ssn, bean.ssn).append(year, bean.year)).isEquals();
}
return equals;
}
public int compareTo(Object pObject) {
return CompareToBuilder.reflectionCompare(this, pObject);
}
}
public class MainClass {
public static void main(String[] pArgs) throws Exception {
TaxReturn return1 = new TaxReturn("012-68-3242", 1998, "O'Brien", new BigDecimal(43000.00));
TaxReturn return2 = new TaxReturn("012-68-3242", 1999, "O'Brien", new BigDecimal(45000.00));
TaxReturn return3 = new TaxReturn("012-68-3242", 1999, "O'Brien", new BigDecimal(53222.00));
System.out.println("ToStringBuilder: " + return1.toString());
}
}
运行结果如下:
ToStringBuilder: TaxReturn@1503a3[ssn=012-68-3242,year=1998,lastName=O'Brien]
2、ToStringBuilder的reflectionToString方法
该方法主要是把类对应的基本属性和值输出来。如:
public class MainClass {
public static void main(String[] args) {
MyClass one = new MyClass("Becker", 35);
MyClass two = new MyClass("Becker", 35);
MyClass three = new MyClass("Agassi", 33);
System.out.println("One>>>" + one);
System.out.println("Two>>>" + two);
System.out.println("Three>>>" + three);
System.out.println("one equals two? " + one.equals(two));
System.out.println("one equals three? " + one.equals(three));
System.out.println("One HashCode>>> " + one.hashCode());
System.out.println("Two HashCode>>> " + two.hashCode());
System.out.println("Three HashCode>>> " + three.hashCode());
}
}
class MyClass {
private String name = null;
private int age = 0;
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
public String toString() {
return ToStringBuilder.reflectionToString(this,
ToStringStyle.MULTI_LINE_STYLE);
}
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
}
运行结果如下:
One>>>MyClass@743399[
name=Becker
age=35
]
Two>>>MyClass@1d8957f[
name=Becker
age=35
]
Three>>>MyClass@3ee284[
name=Agassi
age=33
]
one equals two? true
one equals three? false
One HashCode>>> 462213092
Two HashCode>>> 462213092
Three HashCode>>> -530629296
ToStringStyle参数说明:
1. DEFAULT_STYLE
com.entity.Person@182f0db[name=John Doe,age=33,smoker=false]
2. MULTI_LINE_STYLE
com.entity.Person@182f0db[
name=John Doe
age=33
smoker=false
]
3. NO_FIELD_NAMES_STYLE
com.entity.Person@182f0db[John Doe,33,false]
4. SHORT_PREFIX_STYLE (即截去了包名)
Person[name=John Doe,age=33,smoker=false]
5. SIMPLE_STYLE
John Doe,33,false
为什么要使用ToStringBuilder?
系统中一般都要打印日志的,因为所有实体的toString()方法 都用的是简单的"+",因为每"+" 一个就会 new 一个 String 对象,这样如果系统内存小的话会暴内存(前提系统实体比较多)。使用ToStringBuilder就可以避免暴内存这种问题的。
ToStringBuilder的append方法
ToStringBuilder类主要用于类的格式化输出。ToStringBuilder中append方法可以向该类添加基本类型、数组、和对象,只有添加的方法才会被toString输出。如:
class TaxReturn {
private String ssn;
private int year;
private String lastName;
private BigDecimal taxableIncome;
// get/set方法省略
public TaxReturn() {
}
public TaxReturn(String pSsn, int pYear, String pLastName, BigDecimal pTaxableIncome) {
setSsn(pSsn);
setYear(pYear);
setLastName(pLastName);
setTaxableIncome(pTaxableIncome);
}
public String toString() {
return new ToStringBuilder(this).append("ssn", ssn).append("year", year).append("lastName",
lastName).toString();
}
public int hashCode() {
return new HashCodeBuilder(3, 7).append(ssn).append(year).toHashCode();
}
public boolean equals(Object pObject) {
boolean equals = false;
if (pObject instanceof TaxReturn) {
TaxReturn bean = (TaxReturn) pObject;
equals = (new EqualsBuilder().append(ssn, bean.ssn).append(year, bean.year)).isEquals();
}
return equals;
}
public int compareTo(Object pObject) {
return CompareToBuilder.reflectionCompare(this, pObject);
}
}
public class MainClass {
public static void main(String[] pArgs) throws Exception {
TaxReturn return1 = new TaxReturn("012-68-3242", 1998, "O'Brien", new BigDecimal(43000.00));
TaxReturn return2 = new TaxReturn("012-68-3242", 1999, "O'Brien", new BigDecimal(45000.00));
TaxReturn return3 = new TaxReturn("012-68-3242", 1999, "O'Brien", new BigDecimal(53222.00));
System.out.println("ToStringBuilder: " + return1.toString());
}
}
运行结果如下:
ToStringBuilder: TaxReturn@1503a3[ssn=012-68-3242,year=1998,lastName=O'Brien]
2、ToStringBuilder的reflectionToString方法
该方法主要是把类对应的基本属性和值输出来。如:
public class MainClass {
public static void main(String[] args) {
MyClass one = new MyClass("Becker", 35);
MyClass two = new MyClass("Becker", 35);
MyClass three = new MyClass("Agassi", 33);
System.out.println("One>>>" + one);
System.out.println("Two>>>" + two);
System.out.println("Three>>>" + three);
System.out.println("one equals two? " + one.equals(two));
System.out.println("one equals three? " + one.equals(three));
System.out.println("One HashCode>>> " + one.hashCode());
System.out.println("Two HashCode>>> " + two.hashCode());
System.out.println("Three HashCode>>> " + three.hashCode());
}
}
class MyClass {
private String name = null;
private int age = 0;
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
public String toString() {
return ToStringBuilder.reflectionToString(this,
ToStringStyle.MULTI_LINE_STYLE);
}
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
}
运行结果如下:
One>>>MyClass@743399[
name=Becker
age=35
]
Two>>>MyClass@1d8957f[
name=Becker
age=35
]
Three>>>MyClass@3ee284[
name=Agassi
age=33
]
one equals two? true
one equals three? false
One HashCode>>> 462213092
Two HashCode>>> 462213092
Three HashCode>>> -530629296
ToStringStyle参数说明:
1. DEFAULT_STYLE
com.entity.Person@182f0db[name=John Doe,age=33,smoker=false]
2. MULTI_LINE_STYLE
com.entity.Person@182f0db[
name=John Doe
age=33
smoker=false
]
3. NO_FIELD_NAMES_STYLE
com.entity.Person@182f0db[John Doe,33,false]
4. SHORT_PREFIX_STYLE (即截去了包名)
Person[name=John Doe,age=33,smoker=false]
5. SIMPLE_STYLE
John Doe,33,false
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1565方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2016前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3463info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2230import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 489https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 683public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 606https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 667https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 432https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5381 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3095微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 611https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1841什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 961本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1359原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 854public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 667在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 936-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 767一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1903介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
org.apache.commons.lang.builder.ToStringBuilder.class org.apache.commons.lang.builder.ToStringStyle$DefaultToStringStyle.class org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle....
org.apache.commons.lang.builder.ToStringBuilder.class org.apache.commons.lang.builder.ToStringStyle$DefaultToStringStyle.class org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle....
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods....
标签中的"org.apache.commons.net.ftp"表明此包重点在于FTP(File Transfer Protocol)支持。FTP是一种用于在网络上进行文件传输的协议,Apache Commons Net库中的FTP组件提供了丰富的API,使得开发者可以轻松地在...
org.apache.commons.net.ftp.FTPClient包,不错,在实际项目和产品中使用过。
这个库的核心是`org.apache.commons.beanutils`包,其中包含了大量的辅助方法,使得开发者可以更加便捷地处理JavaBean属性,避免了直接调用getter和setter方法的繁琐过程。 Apache Commons BeanUtils库的核心功能:...
在本文中,我们将深入探讨如何使用`org.apache.commons.net.ftp.FTPClient`包来实现简单的文件下载功能。这个过程涉及到几个关键步骤,包括连接到FTP服务器、登录、设置传输模式、下载文件以及断开连接。 首先,你...
在处理`org.apache.commons.dbcp.BasicDataSource`时,可能会遇到一些常见问题,如配置错误、连接泄漏、性能问题等。下面我们将详细探讨这些问题及其解决方案。 首先,`BasicDataSource`是DBCP库中的核心类,它实现...
在Java开发领域,Apache Commons是一个不可或缺的开源工具集,它提供了许多实用的组件,其中一个便是“Codec”模块,对应的库文件即为"org.apache.commons.codec.jar"。这个库文件是Apache Commons项目的一部分,...
org.apache.commons.net.util.jar
org.apache.commons.lang.builder.ToStringBuilder.class org.apache.commons.lang.builder.ToStringStyle$DefaultToStringStyle.class org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle....
FTP应用的jar包,主要用于java开发FTP上传下载
.net.ftp.FTPClient jar ,exaple, commons-net-2.0.jar
org.apache.commons.net.ftp的官方完整jar包 放心使用
解决经常遇到的The import org.apache.commons.codec cannot be resolved问题,只需导入文件中的commons-codec-1.11.jar就可以,如和导入包就不赘述了。
标题中的"org.apache.commons.lang包"指的是该库的主要命名空间,它包含了各种实用工具类,如字符串处理、日期时间操作、类型转换等。 在描述中提到,解压缩Apache Commons Lang资源包后,我们可以获取到几个关键...
项目中需要 org.apache.commons.io.IOUtils的可以下载此包,fileupload组件依赖的commons-io组件
总之,要解决`java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource`的问题,你需要确保你的项目正确包含了Apache Commons DBCP及其相关依赖,并正确配置了`BasicDataSource`。同时,了解...
Apache Commons IO库中的`org.apache.commons.io.FileUtils`类是一个非常实用的工具类,它提供了大量方便、高效的方法,用于处理文件系统操作。这个类在Java开发中被广泛使用,尤其是在处理大量的文件读写和管理任务...