Ich habe die folgende Karte von den Suchkriterien:Pass Parameter Prädikate
private final Map<String, Predicate> searchMap = new HashMap<>();
private void initSearchMap() {
Predicate<Person> allDrivers = p -> p.getAge() >= 16;
Predicate<Person> allDraftees = p -> p.getAge() >= 18
&& p.getAge() <= 25
&& p.getGender() == Gender.MALE;
Predicate<Person> allPilots = p -> p.getAge() >= 23
&& p.getAge() <=65;
searchMap.put("allDrivers", allDrivers);
searchMap.put("allDraftees", allDraftees);
searchMap.put("allPilots", allPilots);
}
Ich bin mit dieser Karte in der folgenden Art und Weise:
pl.stream()
.filter(search.getCriteria("allPilots"))
.forEach(p -> {
p.printl(p.getPrintStyle("westernNameAgePhone"));
});
Ich möchte wissen, wie kann ich einige Parameter in die Karte der Prädikate übertragen?
I.e. Ich möchte Prädikat von einer Karte durch seine Zeichenkettenabkürzung erhalten und einen Parameter in das Herausnehmen von einem Kartenprädikat einfügen.
pl.stream()
.filter(search.getCriteria("allPilots",45, 56))
.forEach(p -> {
p.printl(p.getPrintStyle("westernNameAgePhone"));
});
Hier ist die link aus ich diese Karte-Prädikat Ansatz gegoogelt aus.
Was würden Sie tun mögen nicht kompilieren, und du hast nicht erklärt, was es tun soll. –
Ich habe nur ein Beispiel gegeben. Sicher, es wird nicht kompiliert. Hier ist, was ich gerne tun würde: Ich möchte ein Prädikat von einer Karte durch seine Abkürzung Zeichenfolge erhalten und fügen Sie einen Parameter in die aus einem Kartenprädikat herausgenommen. –
Wofür wird der Parameter verwendet? Was ist das Ziel von 45 in deinem Beispiel? –