Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.4</version>
- </dependency>
- public Class X {
- private String a;
- private String b;
- private Y y;
- }
- public Class Y {
- private String c;
- private String d;
- }
- ToStringStyle style = ToStringStyle.JSON_STYLE;
- LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));
- {"a":"<a>","b":"<b>","y": com.<packages>.y@<hash>}
- RecursiveToStringStyle style = new RecursiveToStringStyle();
- LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));
- [com.<packages>.x@<hash>[a=<a>,b=<b>,y=com.<packages>.y@<hash>[c=<c>,d=<d>]]
- `Merge of Approach 1 and Approach 2` but how to achieve this?
- {"a":"<a>","b":"<b>","y":{"c":"<c>","d":"<d>"}}
- public Class X {
- private String a;
- private String b;
- private Y y;
- @Override
- public String toString() {
- return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
- }
- }
- public Class Y {
- private String c;
- private String d;
- @Override
- public String toString() {
- return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
- }
- }
- class CustomStyle extends RecursiveToStringStyle {
- public CustomStyle() {
- super();
- super.setUseClassName(false);
- super..setUseIdentityHashCode(false);
- super.setContentStart("{");
- super.setContentEnd("}");
- super.setArrayStart("[");
- super.setArrayEnd("]");
- super.setFieldSeparator(",");
- super.setFieldNameValueSeparator(":");
- super.setNullText("null");
- super.setSummaryObjectStartText(""<");
- super.setSummaryObjectEndText(">"");
- super.setSizeStartText(""<size=");
- super.setSizeEndText(">"");
- }
- }
- public class Z {
- public String objectToString(Object obj) {
- ToStringStyle style = new CustomStyle();
- return new ReflectionToStringBuilder(obj, style).toString();
- }
- }
Add Comment
Please, Sign In to add comment