Усовершенствования и методы, которые мне нужны, чтобы заполнить поля - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть модель с несколькими полями, поэтому у меня есть методы установки и получения, затем мне нужно заполнить эти поля нулями или пробелами слева, у меня уже есть метод для этого, но мне нужно будет вызватьэто на каждом сеттере, как я могу улучшить это и не иметь много повторяющегося кода?

вот пример:

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 голосов
/ 24 ноября 2018

Мне не нужно было модифицировать 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;
}
0 голосов
/ 24 ноября 2018

если у вас есть что-то вроде этого

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