I am trying to use an object method in a Java thread to set a filter. For instance:
ArrayList<Test> testArray = new ArrayList<Test>();
testArray
.stream()
.filter(*CURRENTELEMENT*.getPredicate())
.forEach(System.out::println);
The return lambda from getPredicate () may be something else, since the purpose of this is to have a dynamic filter that can be set by Test objects in this case.
Thanks in advance for your help! This is my first post, so I hope I will explain it myself.
Edit / Update: This is what the getPredicate () method looks like for the Test object:
public Predicate<Test> getPredicate(String name, String id) {
List<Predicate<Test>> allFilters = Arrays.asList();
Predicate<Test> aggregateFilters;
allFilters.add(d -> d.getName().equals(name));
allFilters.add(d -> d.getId().equals(id));
aggregateFilters= allFilters
.stream()
.reduce(d -> false, Predicate::or);
return aggregateFilters;
}
Thanks again for your time and help.
source
share