在打印日志时,我想阻止电话号码和身份证的中间。我不想在每个实体类中更改toString方法。是否有某种方法可以替换长String中的电话号码?
答案 0 :(得分:0)
通过使用知道各种字段敏感度的包装器装饰正在记录的对象,您可能会取得一些成功。
一个非常基本的例子...
this.formViewer.favoris = <Favoris<Form>>this.favoris;
并将装饰的对象传递到您的日志记录设备
class NumberHidingDecorator {
private final Object decorated;
public NumberHidingDecorator(Object decorated) {
this.decorated = decorated;
}
@Override
public String toString() {
return decorated.toString().replaceAll("(\d{2})\d+(\d{2})", "$1...$2");
}
}