gpt4 book ai didi

java - 将接口(interface)列表作为函数中的参数传递

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

我确信我有一个愚蠢的错误,但我无法将实现接口(interface)的对象列表传递给需要该接口(interface)列表的函数。

这是函数签名:

public void add(ArrayList<PairStringInterface> data){ ... }

这就是我调用这个函数的方式:

ArrayList<Sector> list = new ArrayList<Sector>();
add(list);

这是类 Sector

public class Sector implements PairStringInterface { ... } 

我收到一条错误,提示没有任何适合参数的函数

Error:(88, 31) error: no suitable method found for add(ArrayList<Sector>) 
method PairStringSpinnerAdapter.add(ArrayList<PairStringInterface>)
is not applicable (argument mismatch; ArrayList<Sector> cannot be converted to ArrayList<PairStringInterface>)

如果我迭代列表并添加一种方法来仅接收一项,它就可以工作。

public void add(PairStringInterface elem) { ... }

ArrayList<Sector> list = ....
for(Sector s : list){
add(s);
}

最佳答案

您应该使用泛型类型占位符,例如 follow

public <T extends PairStringInterface> void add(ArrayList<T> list) {
// Do your things here...
}

按照上面的方法更改方法签名,您应该能够使用任何 ArrayList<Sector>作为参数传递给该方法。

关于java - 将接口(interface)列表作为函数中的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38359092/

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