ReflectionToStringBuilder
的规范用法如下
public String toString() {
return (new ReflectionToStringBuilder(this) {
protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("password");
}
}).toString();
}
如果必须多次完成,是否有可能不重复此操作。我真的这么认为,但也许比我更先进的人可能会有一个建议。我真正想要做的是实际添加一个方法。
答案 0 :(得分:4)
class NonPasswordShowingStringBuilder extends ReflectionToStringBuilder
{
protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("password");
}
public NonPasswordShowingStringBuilder(Object o) { super(o); }
}
除非我遗漏了什么。
答案 1 :(得分:1)
另一种方法,如果要将其他参数传递给您的代码,则非常有用,就是将匿名内部类放在方法中:
public static ReflectionToStringBuilder toStringBuilder(Object obj) {
return new ReflectionToStringBuilder(obj) {
@Override protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("password");
}
};
}