这是我正在尝试编写的方法(现在无法编译,因为 what
不被视为 Iterable ):
public <T,V> ArrayList<V> mySelect(T what,ITest<V> x) {
ArrayList<V> results = new ArrayList<V>();
for(V value : what) {
if(x.accept(value)) {
results.add(value);
}
}
return results;
}
T
类型实现 Iterable
,并在使用 foreach
时返回 V
对象。问题是我不知道怎么写。你能帮忙吗?
最佳答案
public <T extends Iterable<V>,V> ArrayList<V> mySelect(T what, ITest<V> x) {
背后的逻辑:T
是 Iterable
的任何子类(在本例中为实现类),并且
Iterable
被定义为在 V
我建议阅读 araqnid 的建议,因为它向您展示了如何使代码更清晰。
关于java - 如何在 Java 中创建一个泛型方法,其中参数化类型之一必须实现 Iterable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1930432/