gpt4 book ai didi

JAVA 在转换为同级类时避免重复代码

转载 作者:行者123 更新时间:2023-11-30 07:35:48 24 4
gpt4 key购买 nike

我有 2 个 Java 类 A 和 B;它们都扩展了另一个 Java 类,例如 C。在另一个类中,我有一个类 C 的对象,作为方法的参数传递,我必须使用这个对象(通过适当的强制转换)来设置 A 和 B 的字段,例如:

if(C instanceof A){
((A)C).setAField1(AField1);
...
((A)C).setAFieldN(AFieldN);
}else if (C instanceof B){
((B)C).setBField1(BField1);
...
((B)C).setBFieldN(BFieldN);
}

我必须设置相同的字段,对 setter 方法进行相同的调用,但我必须执行不同的转换。我必须做什么才能避免代码重复?

PS:我无法将这些字段放入 C 类中,因为它是由不需要它们的其他类扩展的。

最佳答案

接口(interface)编程。

让所有类通过接口(interface)实现,然后使用接口(interface)类型更改。

您最终会得到如下代码,没有 if 条件

 yourInterfaceInstance.setField(fieldVar);

关于JAVA 在转换为同级类时避免重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35428806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com