sS stdToStringWithFields(O o, S... fields) { if (o == null) ret "null"; S name = shortClassName(o); // new default if (empty(fields)) fields = asStringArray(allNonStaticFields(o)); if (empty(fields)) ret name; ret name + "(" + joinWithComma(mapNonNulls(fields, field -> { O value = getOpt(o, field); if (value == null) null; ret field + "=" + str(value); })) + ")"; }