Java 如何扩展StringBuilder以避免重复?
的规范用法如下所示Java 如何扩展StringBuilder以避免重复?,java,Java,的规范用法如下所示 public String toString() { return (new ReflectionToStringBuilder(this) { protected boolean accept(Field f) { return super.accept(f) && !f.getName().equals("password"); } }).toString(); } 如果
public String toString() {
return (new ReflectionToStringBuilder(this) {
protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("password");
}
}).toString();
}
如果必须重复多次,是否有可能不重复这一点。我真的这么认为,但也许比我更先进的人会有一个建议。我真正想做的是添加一个方法
class NonPasswordShowingStringBuilder extends ReflectionToStringBuilder
{
protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("password");
}
public NonPasswordShowingStringBuilder(Object o) { super(o); }
}
除非我遗漏了什么
除非我遗漏了什么。如果有其他参数要传递给代码,另一种有用的方法是将匿名内部类放入方法中:
public static ReflectionToStringBuilder toStringBuilder(Object obj) {
return new ReflectionToStringBuilder(obj) {
@Override protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("password");
}
};
}
如果要向代码传递其他参数,另一种方法很有用,即将匿名内部类放入方法中:
public static ReflectionToStringBuilder toStringBuilder(Object obj) {
return new ReflectionToStringBuilder(obj) {
@Override protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("password");
}
};
}