gpt4 book ai didi

java - 代码重复 vs 类型转换 vs?

转载 作者:行者123 更新时间:2023-12-01 12:11:24 26 4
gpt4 key购买 nike

假设我有这样的类(class):
父级 A,子级 A1,子级 A2...子级An
ParentB,ChildB1,ChildB2...ChildBn

因此,每个 ChildAi 类都扩展 ParentA,每个 ChildBi 类都扩展 ParentB 类。

在 ChildAi 类中,我需要与 ChildBi 类一起工作。例如:

public class ChildAi extends ParentA{
public ChildBi getChildB(...){
....some logic....
return childBi;
}
}

所以问题出在 getChildB 方法上。如果我将此方法放在 ParentA 中,我只能返回 ParentB 类,并且我将始终需要进行转换。如果我把这个方法放在 ChildAi 中,那么我总是会复制这个方法以及至少它的一些逻辑。我该如何解决?没有泛型可以解决这样的问题吗?

最佳答案

我认为泛型是你的 friend 。

定义 ParentA 类如下:

public class ParentA<T extends {
public abstract T getB();
}

现在每个子类将定义泛型类型如下:

public class ChildA1 extends ParentA<ChildB1> {
public ChildB1 getB() { return ...;}
}

就是这样。没有强制转换,也没有重复的代码。

关于java - 代码重复 vs 类型转换 vs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27256995/

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