Ho la seguente mappa dei criteri di ricerca:parametri Passo a Predicati
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);
}
sto usando questa mappa nel modo seguente:
pl.stream()
.filter(search.getCriteria("allPilots"))
.forEach(p -> {
p.printl(p.getPrintStyle("westernNameAgePhone"));
});
Vorrei sapere, come posso passare alcuni parametri nella mappa dei predicati?
I.e. Vorrei ottenere un predicato da una mappa tramite la sua stringa abbreviata e inserire un parametro nell'estratto da un predicato di mappa.
pl.stream()
.filter(search.getCriteria("allPilots",45, 56))
.forEach(p -> {
p.printl(p.getPrintStyle("westernNameAgePhone"));
});
Ecco la link da Googled questo approccio mappa-predicato.
ciò che si vorrebbe fare sarebbe non compilare, e non hai spiegato cosa dovrebbe fare. –
Ho appena dato un esempio. Certo, non verrà compilato. Ecco cosa mi piacerebbe fare: vorrei ottenere un predicato da una mappa con la sua stringa abbreviata e inserire un parametro nell'estratto da un predicato di mappa. –
Per quale parametro verrà utilizzato? Qual è l'obiettivo di 45 nel tuo esempio? –