This is a toString-Template using the JDK8 StringJoiner.
Tip: Exclude fields by name with the following regular expression: (?i).(password|token|pwd|passwd|secur|secret).
public java.lang.String toString() {
#if ($members.empty)
return this.getClass().getSimpleName() + "@" + java.lang.System.identityHashCode(this) + "[]";
#else
return new java.util.StringJoiner(", ", this.getClass().getSimpleName() + "@" + java.lang.System.identityHashCode(this) + "[", "]")
#foreach ($member in $members)
#if ($member.primitiveArray || $member.objectArray)
.add("$member.name = " + java.util.Arrays.toString($member.name))
#elseif ($member.string)
#if ($member.notNull)
.add("$member.name = '" + $member.accessor + "'")
#else
.add("$member.name = " + ($member.accessor == null ? "null" : "'" + $member.accessor + "'"))
#end
#else
.add("$member.name = " + $member.accessor)
#end
#end
.toString();
#end
}