我想重构我的代码,因为它包含冗余的类声明。
我有一个类型为ContainerClass1的类。假设class-type仅包含一个名为“ content”的int变量的字段。
类型另一个ContainerFiller1的类包含一个方法,该方法将ContainerClass1的实例作为参数并将字段设置为某个值。 ContainerFiller1看起来像这样:
public class ContainerFiller1 {
public void fill( ContainerClass object_A ) {
object_A.content = 99;
}
}
因此,我使用点符号来声明在何处查找字段(在本例中为object_A)。
我还有其他八个对象作为类
ContainerClass (ContainerClass object_B, ContainerClass object_C, ContainerClass object_D, etc.)
的实例。这是我的问题:
object_A.content = 99
是硬连线的,因此在点符号内,我不能将object-name作为变量来调整我的字段路径。作为解决方法,我声明了九个单独的ContainerFiller-Classes ( ContainerFiller1, …, ContainerFiller9)
,每个都有一个不同的字段设置器。例如,ContainerFiller2
包含一个硬连接的setter object_B.content = 99
。我想摆脱多余的类,并从中创建一个
ContainerFiller
类型的通用类。有没有一种方法可以更改字段设置器概念,我可以在fill(ContainerClass anyObject)
的参数列表中引用对象名称并动态调整字段设置器?也欢迎提出点符号替代的建议。提前致谢
特雷克斯
最佳答案
您可以在构造函数中使用参数:
public class ContainerFiller {
private amount;
public ContainerFiller(int amount) {
this.amount = amount
}
public void fill( ContainerClass container ) {
container.content = this.amount;
}
}
然后像这样使用它:
ContinerFiller fillerA = new ContainerFiller(99)
fillerA.fill(someContainer)