gpt4 book ai didi

java - 从抽象类继承泛型类型方法——转换为特定类型

转载 作者:行者123 更新时间:2023-11-29 06:40:39 25 4
gpt4 key购买 nike

(在 Java 中工作)我有一个抽象类,在整个类中都有通用类型:

public abstract class ConnectionProcessor<T>
{
public void process()
{
for (List<T> resultsPage : connection)
{
processPage(resultsPage);
}
}

protected abstract void processPage(List<T> resultsPage);
}

我有另一个扩展上述抽象类的类,声明如下:

public class AlbumProcessor<Album> extends ConnectionProcessor
{
@Override
protected void processPage(List resultsPage)
{
//Do stuff here specific to Album
}
}

此声明工作正常,但在 processPage 中我想做Album - 特定的东西,我尽量避免在不需要时使用它。我希望这是方法声明:

protected void processPage(List<Album> resultsPage)

但这不符合覆盖processPage的要求来自 ConnectionProcessor .为什么是这样?我怎样才能得到想要的行为?我认为在 AlbumProcessor我可以插入 <Album>无处不在ConnectionProcessor<T> ,但事实并非如此。

最佳答案

尝试

//extend prameterized version of ConnectionProcessor<T> with Album as actual type argument
public class AlbumProcessor extends ConnectionProcessor<Album> {

代替

public class AlbumProcessor<Album> extends ConnectionProcessor {

当您执行上述操作时,您正在扩展通用类型的原始版本 ConnectionProcessor<T>并引入一个新的正式类型参数 - Album (如 T )在那种情况下不是实际的类型参数。

关于java - 从抽象类继承泛型类型方法——转换为特定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12716589/

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