gpt4 book ai didi

java - 使用泛型参数列表的泛型方法声明

转载 作者:行者123 更新时间:2023-12-01 09:44:30 24 4
gpt4 key购买 nike

我一直在尝试获取带有通用参数的通用方法,但我似乎无法让它工作。以下是声明:

/**
* Set items as table rows content
*
* @param rows - table row content
*/
public abstract void setItems(List<?> rows);

这里是实现:

@Override
public void setItems(List<Dto> bonuses) {
//code here
}

Dto 是一个实际的类,但编译器说它看不到它的父类。

The method setItems(List) of type Table must override or implement a supertype method

如果我在泛型声明中将其定义为单独的参数,那么编译器会说我的新类型隐藏了已定义的类

我无法对编译器说我想要在此实现中使用具体参数。我尝试将其更改为类型而不是通配符,但产生相同的结果。如何让它与具体实现(Dto)一起工作?

最佳答案

像@Jägermeister 在评论中所说的那样:

public abstract class TestClass<T> {
public abstract void setItems(List<T> rows);
}

用途:

public class Test extends TestClass<Dto> {

@Override
public void setItems(List<Dto> rows) {
//TODO
}
}

或者您可以将方法定义为

public abstract void setItems(List rows);

并使用类似

public void setItems(List rows) {....

但这不是好办法!

关于java - 使用泛型参数列表的泛型方法声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38181417/

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