gpt4 book ai didi

java - 如何正确子类泛型?

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:57 26 4
gpt4 key购买 nike

我搜索了其他问题/答案,但我仍然对这个 JAVA ISSUE 感到困惑。

如果我想对采用泛型参数的类型进行子类化,那么在为子类使用泛型参数的同时又不被隐藏时,我该如何实现呢?

例如:

public class A <T> extends ArrayList<T> {}

因此,如果我实例化我的自定义类,并以整数作为参数,它是否会将该值作为 <T> 的参数ArrayList 部分也是如此吗?如果没有,那么我将如何指定 ArrayList 的类型?

我知道子类化容器在很多情况下可能不是最好的主意,但在这种情况下我认为它是合适的。

最佳答案

是的,这就是人们要做的事情。

public static void main(String[] args) {
B<Integer> b = new B<Integer>();
b.a = 1;
b.b = "one";

b.add(1);
b.add(2);
}

public static class A<T> extends ArrayList<T> {
public T a;
}

public static class B<T> extends A<T> {
public T b;
}

如果你愿意,你甚至可以让它们有不同的类型,只要你也为父类(super class)提供它的类型:

public static void main(String[] args) {
B<Integer, String> b = new B<Integer, String>();
b.a = 1;
b.b = "one";

b.add(1);
b.add(2);
}

public static class A<T> extends ArrayList<T> {
public T a;
}

public static class B<U, T> extends A<U> {
public T b;
}

关于java - 如何正确子类泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25697739/

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