Guest User

Untitled

a guest
Mar 19th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. <dependency>
  2. <groupId>org.apache.commons</groupId>
  3. <artifactId>commons-lang3</artifactId>
  4. <version>3.4</version>
  5. </dependency>
  6.  
  7. public Class X {
  8.  
  9. private String a;
  10. private String b;
  11. private Y y;
  12. }
  13.  
  14. public Class Y {
  15. private String c;
  16. private String d;
  17. }
  18.  
  19. ToStringStyle style = ToStringStyle.JSON_STYLE;
  20. LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));
  21.  
  22. {"a":"<a>","b":"<b>","y": com.<packages>.y@<hash>}
  23.  
  24. RecursiveToStringStyle style = new RecursiveToStringStyle();
  25. LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));
  26.  
  27. [com.<packages>.x@<hash>[a=<a>,b=<b>,y=com.<packages>.y@<hash>[c=<c>,d=<d>]]
  28.  
  29. `Merge of Approach 1 and Approach 2` but how to achieve this?
  30.  
  31. {"a":"<a>","b":"<b>","y":{"c":"<c>","d":"<d>"}}
  32.  
  33. public Class X {
  34.  
  35. private String a;
  36. private String b;
  37. private Y y;
  38.  
  39. @Override
  40. public String toString() {
  41. return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
  42. }
  43. }
  44.  
  45. public Class Y {
  46. private String c;
  47. private String d;
  48.  
  49. @Override
  50. public String toString() {
  51. return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
  52. }
  53. }
  54.  
  55. class CustomStyle extends RecursiveToStringStyle {
  56.  
  57. public CustomStyle() {
  58. super();
  59. super.setUseClassName(false);
  60. super..setUseIdentityHashCode(false);
  61. super.setContentStart("{");
  62. super.setContentEnd("}");
  63. super.setArrayStart("[");
  64. super.setArrayEnd("]");
  65. super.setFieldSeparator(",");
  66. super.setFieldNameValueSeparator(":");
  67. super.setNullText("null");
  68. super.setSummaryObjectStartText(""<");
  69. super.setSummaryObjectEndText(">"");
  70. super.setSizeStartText(""<size=");
  71. super.setSizeEndText(">"");
  72. }
  73. }
  74.  
  75. public class Z {
  76. public String objectToString(Object obj) {
  77. ToStringStyle style = new CustomStyle();
  78. return new ReflectionToStringBuilder(obj, style).toString();
  79. }
  80. }
Add Comment
Please, Sign In to add comment