我需要填写字段的改进设置器和方法
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;
}
我有一个包含多个字段的模型,因此,我有 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;
}