There are few ways to implement toString method.
Reflections (Apache library)
@Override
public String toString(){
return org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(this);
}
JSON based implementation (GSON, Jackson libraries)
// GSON library for JSON
@Override
public String toString(){
return new com.google.gson.Gson().toJson(this);
}
// Jackson libabry for JSON/YAML
@Override
public String toString() {
try {
return new com.fasterxml.jackson.databind.ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(this);
} catch (com.fasterxml.jackson.core.JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
ToStringBuilder (available with apache-commons library)
@Override
public String toString() {
return new org.apache.commons.lang3.builder.ToStringBuilder(this).
append("field1", field1).
append("field2", field2).
toString();
}
Hard-core toString() implementation
@Override
public String toString() {
return new StringBuilder()
.append("field1:"+field1)
.append("field2:"+field2)
.toString();
}