gpt4 book ai didi

java - 赋予 List 与包含它的类相同的类型

转载 作者:行者123 更新时间:2023-12-02 07:53:07 27 4
gpt4 key购买 nike

假设我有一个可以扩展的 A 类。在 A 类中,我有一个列表 List<A> 。所以这个类将包含一个包含元素 A 的列表。现在,如果我将这个类 B 扩展为 A 的子类,我希望类 B 具有相同的成员 List<B> ,即相同的列表,但该类型包含类型 B 的项目。使用泛型可以吗?我可以看到类似 A <T extends A> 的内容,同时声明List<T> ,但我不喜欢,因为有关类类型的信息已经存在。还有其他更好的解决方案吗?下面的例子:

public class A {
List<A> list = new ArrayList<A>();
}

public class B extends A {
}

我希望列表在 B 类中具有 B 的泛型类型。

最佳答案

如果您想将行为放入父类(super class)中,那么您必须告诉父类(super class)子类是什么类型的类。这可以通过向 super 添加泛型类型来完成。

public class A<E> {

protected List<E> items;

public A() {
this.items = new ArrayList<E>();
}
}

public class B extends A<B> {

public static void main(String[] args) {
B b = new B();

b.items.add(b);
}
}

关于java - 赋予 List 与包含它的类相同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993776/

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