java - 我可以将 arg 传递给自定义 Lambdaj 谓词吗?

标签 java collections predicate lambdaj

是否可以将参数传递给 lambdaj 谓词?

public static Matcher<SomeObject> isSpecialObject = new Predicate<SomeObject>() {
        public boolean apply(SomeObject specialObj) {
            return LIST_OF_SPECIAL_IDS.contains(specialObj.getTypeId());
        }
    };

我想改变上面的谓词,这样我就可以传入一个列表,而不是使用静态列表 LIST_OF_SPECIAL_IDS。这可能吗?

谢谢。

最佳答案

我怀疑你想要这样的东西:

public static Matcher<SomeObject> createPredicate(final List<String> ids) {
    return new Predicate<SomeObject>() {
        public boolean apply(SomeObject specialObj) {
            return ids.contains(specialObj.getTypeId());
        }
    };
}

您必须使它成为一个方法而不仅仅是一个字段,否则您将无处传递列表。该参数必须是最终的,以便您可以在匿名内部类中使用它。

关于java - 我可以将 arg 传递给自定义 Lambdaj 谓词吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16786773/

相关文章:

java - java OOP 中没有构造函数的后果

java - 如何使用 Android AsyncHttpClient 从 MongoDB 获取数据

c++ - std::unique 与谓词比较 std::string 不删除重复项

xslt - 在具有多个谓词的模板中确定 position() 的上下文

使用 Select 或Where 的 C# 谓词不起作用

java - 相关字段的验证

java - Google Guava Cache,刷新过期超时

python - 如何重写此函数以实现 OrderedDict?

java - 我可以拥有一组包含相同元素的集合吗?

java - 多线程,java聊天客户端