例如,我有课
public class Human {
private String name;
...
}
Run Code Online (Sandbox Code Playgroud)
我想实现这样的事情:
(1)
List<Human> humans = initHumans();
Equals<Human> humanEquals = new Equals<>();
Predicate<Human> filter = humanEquals.filter("name", "John");
List<Human> filteredHumans = humans
.stream()
.filter(filter)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
等于:
public class Equals<T> extends AbstractPredicate<T> {
public java.util.function.Predicate<T> filter(String fieldName, String fieldValue) {
....
}
}
Run Code Online (Sandbox Code Playgroud)
是否提供了(1)行为的有效工具过滤方法?
我想回复Predicate这样的:
Predicate<Human> predicate = human -> human.getName().equals("John");
Run Code Online (Sandbox Code Playgroud)
同样应该适用于其他类:
Predicate<Car> filter = humanEquals.filter("color", "red");
//like this:
Predicate<Car> predicate= human -> human.getColor().equals("red");
Run Code Online (Sandbox Code Playgroud)