如何用Java阻止手机号码的中间四位数?

时间:2019-11-18 08:58:46

标签: java expression

在打印日志时,我想阻止电话号码和身份证的中间。我不想在每个实体类中更改toString方法。是否有某种方法可以替换长String中的电话号码?

1 个答案:

答案 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");
    }
}