是否可以将参数传递给 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/