首页 > 编程知识 正文

实体类中的tostring(java怎么重写tostring)

时间:2023-05-06 00:24:46 阅读:76228 作者:3300

1、ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder、CompareToBuilder等这些类在系统中通常打印日志。 因为使用的是所有实体的toString (方法很简单)。 (因为每个)都更新String对象,所以较小的系统内存会占用大量内存。)有很多前提系统实体。)。 使用ToStringBuilder可以避免内存突发的问题。 二、样例学习1、ToStringBuilder的append方法ToStringBuilder类主要用于类的格式输出。 ToStringBuilder的append方法可以将基本类型、数组和对象添加到类中。 只有添加的方法在toString中输出。 例如:

class tax return { privatestring SSN; 隐私在年; 私有字符串最后名称; 私有二进制表信息; //get/set方法是公共tax return (}公共tax return (stringp SSN,int pYear,String pLastName,BigDecimal pTaxableIncome ) ) setlastname(plastname; settaxableincome (ptaxableincome; } public String toString () returnnewtostringbuilder(this ).append )、ssn ).append )、year )、year ).append } publl } publicbooleanequals (对象对象) { boolean equals=false; if(pObjectinstanceoftaxreturn ) tax return bean=(tax return ) pobject; equals=(newequalsbuilder (.append ) SSN,bean.ssn ).append (year,bean.year ) ).isEquals ); }返回查询; }公共int compare to (object pobject ) returncomparetobuilder.reflection compare (this,pobject ); }公共类主类{ publicstaticvoidmain (string [ ] pargs ) throwsexception ) taxreturnreturn1=newtaxreturn () 012 tatax tax return return3=new tax return (' 012-68-3242 ',1999,' O'Brien ',newbigdecimal ) ) 53222.00; system.out.println (to stringbuilder : ) return1.tostring ); }运行结果为to stringbuilder 3360 tax return @ 1503 a3 [ SSN=012-68-3242,year=1998,lastName=O'Brien] 2,to stringbuilill 我的类two=new my class (' Becker ',35 ); 我的类别three=new my class (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   ############################################### 附加:     无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数。你可知道,有很多现成的工具类可用,并且代码质量都很不错,不用你写,不用你调试,只要你发现。   在 Apache Jakarta Common 中, Lang 这个 Java 工具包是所有 Apache Jakarta Common 项目中被使用最广泛的,几乎你所知道的名气比较大的软件里面都有用到它,包括 Tomcat, Weblogic, Websphere, Eclipse 等等。我们就从这个包开始介绍整个 common 项目。   Lang 中工具类比较多,这里介绍几个主要的:   ClassUtils:  getShortClassName,这个函数应该在 java.lang.Class 类中有的,我看到很多人自己写这个函数。getAllInterfaces,convertClassNamesToClasses,isAssignable,primitivesToWrappers,isInnerClass。   NumberUtils: 关于数字以及数字和字符串转换的类 stringToInt,toDouble,createNumber,isAllZeros, int compare(float lhs, float rhs), isNumber(String str),double min(double[] array)。   RandomUtils: 用于产生随机数的。   DateFormatUtils: 日期时间格式转换,以及本地时间和 UTC 时间转换。   DateUtils: 日期工具类。isSameDay,truncate,round,modify。     基于反射机制的几个类:   CompareToBuilder: 比较,用在算法、排序、比较的地方。reflectionCompare,append。   EqualsBuilder: 通过反射机制比较。reflectionEquals 很多项目中用到。   HashCodeBuilder: 可以通过反射生成 hash code,很多算法的地方涉及到 hash code,但是并不是每个人都知道一种 hash code 的生成方法。   ToStringBuilder: hldbbt需要重载 toString 函数而不想写代码把当前类的所有成员信息列出来,可以用这个函数。     其它的几个类我用得比较少:   SerializationUtils  Java中得序列化比较奥妙,容易出错啊。   SystemUtils 可以读取一些关于 jdk 信息,操作系统信息的工具类。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。