gpt4 book ai didi

Java 泛型类扩展参数化类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:59 26 4
gpt4 key购买 nike

假定以下现有类:

class A { 
public void foo() { ... };
...
}

class A1 extends A { ... };
class A2 extends A { ... };
...
class A1000 extends A { ... };

现在,我们需要为每个 Axx 类创建一个变体来覆盖“foo”方法。基本思想是:

class B<T extends A> extends T {
@Override public void foo () { ... };
}

但是从其中一个参数化类型扩展一个类似乎是不可能的。

目标是跳过以下新代码的需要:

class B1 extends A1 { @Override public void foo() { ... }; }; 
class B2 extends A2 { @Override public void foo() { ... }; };
....
class B1000 extends A1000 { @Override public void foo() { ... }; };

并允许这样的语句:

... 
B<A643> b643 = new B<A643>;
b643.foo();
...

有什么提示吗?

非常感谢。

最佳答案

A 不是通用的。我想你想要类似的东西,

class B<T> extends A {
@Override public void foo () { ... };
}

这是一个扩展 A 的通用类型 B ... T extends A 意味着 B 需要扩展 A 的类型(不是 B 扩展 A)。

关于Java 泛型类扩展参数化类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30165647/

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