我需要填写字段的改进设置器和方法

improvement setters and methods that i need to fill fields

我有一个包含多个字段的模型,因此,我有 setters 和 getter 方法,然后,我需要用零或左边的空格填充这个字段,我已经有一个方法这个但是我需要在每个 setter 上调用它,我该如何改进它并且没有很多重复代码?

示例如下:

public String rellenarStringConEspaciosEnBlanco(String cadenaARellenar, int tamanoACumplir,
        int tamanoCadenaARellenar) {
    int size = tamanoACumplir - tamanoCadenaARellenar;
    if(size>0) {
        String formato = "%-" + size + "s";
        String rellenar = String.format(formato, " ");
        cadenaARellenar = cadenaARellenar + rellenar;
        return cadenaARellenar;
    }
    return cadenaARellenar;

如果你有这样的东西

class Foo {
    String var1;
    String var2;

    void setVar1(String var1) {
        this.var1 = var1;
    }

    void setVar2(String var2) {
        this.var2 = var2;
    }
}

也许你可以添加一个构造函数来像这样用空格初始化对象

class Foo {
    String var1;
    String var2;

    public Foo(String var1, String var2) {
        this.var1 = var1;
        this.var2 = var2;
    }

    void setVar1(String var1) {
        this.var1 = var1;
    }

    void setVar2(String var2) {
        this.var2 = var2;
    }
}

那你就可以了

Foo foo = new Foo(
    rellenarStringConEspaciosEnBlanco("A chain", 7, 1),
    rellenarStringConEspaciosEnBlanco("A chain", 7, 1)
);

我不必修改 DTO,解决方案不是修改 DTO,而是在 class 上创建一个新方法,我正在调用 setter,这是代码

detailRecord.setReferenceOne(rellenarCadena(datosExcelParaProcesar.getField("Referencia1"),detailRecord.getLengthReference1()));

rellenar cadena 是

    public String rellenarCadena(String cadenaParaRellenar, int sizeCadenaTotal){
    int size = sizeCadenaTotal-cadenaParaRellenar.length();
    if(size>0){
        String formato = "%-" + size + "s";
        String rellenar = String.format(formato, " ");
        cadenaParaRellenar = rellenar+cadenaParaRellenar;
    }
    return cadenaParaRellenar;
}