我需要填写领域的改进制定者和方法

时间:2018-11-23 21:16:11

标签: java design-patterns setter getter

我有一个具有多个字段的模型,因此,我有setters和getters方法,然后,我需要用零填充此字段,或者在左侧留有空白,我已经有一个用于此的方法,但我需要调用在每个设置器上,我该如何改进它并且没有很多重复的代码?

这是示例:

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;

2 个答案:

答案 0 :(得分:0)

如果您有类似的东西

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)
);

答案 1 :(得分:0)

我不必修改DTO,解决方案不是修改DTO,而是在我正在调用设置程序的类上创建一个新方法,这里是代码

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;
}