gpt4 book ai didi

java - 为什么 Guava 的 Iterables.filter 想要谓词中的父类(super class)?

转载 作者:行者123 更新时间:2023-11-29 07:03:16 24 4
gpt4 key购买 nike

为什么 guava 的 Iterables.filter 想要谓词中的父类(super class)?

public static <T> Iterable<T> filter(final Iterable<T> unfiltered, final Predicate<? super T> predicate)

你能告诉我如何过滤自定义类的对象吗?我试过了

我试过了

Iterator<TaskSchedule> it = tsp.getAllItems(getCustomerId(), "getId", filter);

com.google.common.collect.Iterables.filter(it, new Predicate<Object>() {
@Override
public boolean apply(Object input)
{
return false;
}
});

失败并出现以下编译错误。我很困惑。

Error:(132, 44) java: C:\work\sideprojects\zzzz\SVN\inlineschedule-feature\test\cucumber\java\zzzz\com\zzz\cucumber\DBTestDriver.java:132: cannot find symbol symbol : method filter(java.util.Iterator,>) location: class com.google.common.collect.Iterables

我正在使用 JDK6

最佳答案

你的编译错误是因为你传递了一个 IteratorIterables.filter ,它需要一个 Iterable作为它的第一个参数。你要Iterators.filter .

这与您的实际问题无关,但既然您问过:Iterables.filter需要 Predicate<? super T>例如,您可以使用 Predicate<Object>过滤 List<String> .如果谓词可以处理您要过滤的类型的某些父类(super class)型,则可以使用该谓词。

关于java - 为什么 Guava 的 Iterables.filter 想要谓词中的父类(super class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699200/

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