gpt4 book ai didi

java - 使用更窄的参数化覆盖泛型方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:47:38 24 4
gpt4 key购买 nike

我有什么:

我有一个我想覆盖的通用方法:

class A {}
class B extends A {}
class C {
public <T extends A> void function(T param) { //will be overridden in heirs
//...
}
}

我想要什么:

很少有扩展 C 类和窄参数化的类。示例:

class D extends C {
@Override
public <T extends B> void function(T param) { //T extends B, not A!! Or even better if it can be only B-class, not heirs
//...
}
}

问题:

我怎样才能做到这一点?

编辑:

C 类有很多继承者:D、F、G、H...这些类中的每一个都有单一方法f(T param)。对于这些方法中的每一个,我需要 T 在每种情况下都是 Z 类的不同继承人。

所以我决定我可以在泛型的帮助下在 C 类中设置通用 API。但如果不可能,也许还有其他方法?

最佳答案

参数化你的类可能是一个解决方案:

class C<T extends A> {

public void function(T param) {
// ...
}

}

class D<T extends B> extends C<T> {

@Override
public void function(T param) {
// ...
}

}

关于java - 使用更窄的参数化覆盖泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20048105/

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