java - 如何在没有过滤器的情况下调用 guava 谓词?

标签 java guava predicate

我读了这篇关于 Guava 谓词的文章

http://blog.solidcraft.eu/2010/10/googole-guava-v07-examples.html

注意点谓词/函数

里面写着:

The invocation would be (returns boolean):

Predicates.in(users).apply(shouldNotHaveDigitsInLoginPredicate);

我做不到。

我的 IDE 写道 apply 方法无法应用于此类型。

请帮助我。

最佳答案

该博客条目没有意义。查看 Predicates 的 API :

Predicates.in(users)创建 Predicate 通用类型 User ,即Predicate<User> 。该谓词采用 User 类型的参数在其 Predicate#apply(T)方法。类(class)ShouldNotHaveDigitsInLoginPredicate实现Predicate<User>本身,因此属于 User 类型。因此,您的 IDE 会警告您类型不匹配。

你能做的是:

User user = getSomeUser();
Predicates.and(Predicates.in(users), new ShouldNotHaveDigitsInLoginPredicate())
    .apply(user);

关于java - 如何在没有过滤器的情况下调用 guava 谓词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20969003/

相关文章:

绘制图像时 Java Headless 异常

java - 如何通过xml签名文件提取 "original"内容

java - 什么是 IntelliJ 代码检查中的入口点,我需要将它们设置为 "fix"吗?

java - 我使用了 doReturn,为什么 Mockito 仍然会在匿名类中调用真正的实现?

java - 为什么我不能将谓词应用于 java 流过滤器?

java - 清除屏幕与在顶部绘图?

Eclipse 找不到类 com.google.common.reflect.TypeToken?

java - 需要一个高效的Map或Set,在添加和删除时不会产生任何垃圾

c++ - std::greater<int>() 和 std::greater<int> 之间的区别?

c# - 在 LINQ 谓词中使用 OrderBy?