http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/builder/ToStringBuilder.html
This class enables a good and consistent toString() to be built for any class or object. This class aims to simplify the process by:
- allowing field names
- handling all types consistently
- handling nulls consistently
- outputting arrays and multi-dimensional arrays
- enabling the detail level to be controlled for Object and Collections
- handling class hierarchies
Method Summary
- reflectionToString(Object object)
Uses reflectionToString to generate a toString with the specified object;
- reflectionToString(Object object, ToStringStyle style)
Uses reflectionToString to generate a toString with the specified object;public static void main(String[] args) { View dto = new View(); dto.uid = "iphone5555555555"; dto.birthday = DateUtils.strtotime("19851213"); dto.height = 165; dto.emailEggValid = MailSendStatusType.SEND; dto.unsignDate = null; List<String> list = new ArrayList<String>(); list.add("test1"); list.add("test2"); dto.list = list; String aa = ToStringBuilder.reflectionToString(dto, ToStringStyle.DEFAULT_STYLE); // Test$View@6345e044[uid=iphone5555555555,birthday=Fri Dec 13 00:00:00 CST 1985,height=165,emailEggValid=SEND,unsignDate=<null>,list=[test1, test2]] aa = ToStringBuilder.reflectionToString(dto, ToStringStyle.MULTI_LINE_STYLE); // Test$View@33dff3a2[ // uid=iphone5555555555 // birthday=Fri Dec 13 00:00:00 CST 1985 // height=165 // emailEggValid=SEND // unsignDate=<null> // list=[test1, test2] // ] aa = ToStringBuilder.reflectionToString(dto, ToStringStyle.NO_FIELD_NAMES_STYLE); // Test$View@86c347[iphone5555555555,Fri Dec 13 00:00:00 CST 1985,165,SEND,<null>,[test1, test2]] aa = ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE); // Test.View[uid=iphone5555555555,birthday=Fri Dec 13 00:00:00 CST 1985,height=165,emailEggValid=SEND,unsignDate=<null>,list=[test1, test2]] aa = ToStringBuilder.reflectionToString(dto, ToStringStyle.SIMPLE_STYLE); // iphone5555555555,Fri Dec 13 00:00:00 CST 1985,165,SEND,<null>,[test1, test2] Style style = new Style(); aa = ToStringBuilder.reflectionToString(dto, style); // Test$View@86c347[uid=iphone5555555555,birthday=1985-12-13,height=165,emailEggValid=SEND,unsignDate=<null>,list=[test1, test2]] System.out.println(aa); } public static class Style extends StandardToStringStyle { protected void appendDetail(StringBuffer buffer, String fieldName, Object value) { if (value instanceof Date) { value = new SimpleDateFormat("yyyy-MM-dd").format(value); } buffer.append(value); } } public static class View { public String uid; public Date birthday; public int height; public MailSendStatusType emailEggValid; public Date unsignDate; public List<String> list; }