使用反射的方式重写toString只打印有值的
@Override
public String toString() {
Class c = this.getClass();
StringBuilder sb = new StringBuilder(c.getName() + ".toString:\n");
Field[] fields = c.getDeclaredFields();
Field.setAccessible(fields, true);
try {
for (Field field : fields) {
if (null != field.get(this)) {
String fieldType = String.valueOf(field.getType());
String tmp = field.getName() + "=" + field.get(this) + "\n";
sb.append(tmp);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}