Passer des paramètres à des Prédicats

J'ai la carte suivante des critères de recherche:

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);
}

Je suis en utilisant cette carte de la manière suivante:

pl.stream()
    .filter(search.getCriteria("allPilots"))
    .forEach(p -> {
        p.printl(p.getPrintStyle("westernNameAgePhone"));
    });

Je voudrais savoir, comment puis-je passer certains paramètres sur la carte de prédicats?

I. e. Je voudrais obtenir un prédicat à partir d'une carte par sa chaîne abréviation et insérer un paramètre dans la prise à partir d'une carte de prédicat.

pl.stream()
    .filter(search.getCriteria("allPilots",45, 56))
    .forEach(p -> {
        p.printl(p.getPrintStyle("westernNameAgePhone"));
    });

Ici est la lien de j'ai googlé cette carte-prédicat approche.

Ce que vous voulez faire serait de ne pas compiler, et vous n'avez pas d'expliquer ce que c'est censé faire.
J'ai juste donné un exemple. Bien sûr, il l'habitude de compiler. Voici ce que je voudrais faire: je voudrais obtenir un prédicat à partir d'une carte par sa chaîne abréviation et insérer un paramètre dans la prise à partir d'une carte de prédicat.
Que serait le paramètre être utilisé? Quel est l'objectif de 45 dans votre exemple?
45 avec le 56 sont le filtrage des paramètres pour donner un prédicat allPilots c'est à dire ce prédicat doit retourner false si le pilote de l'âge n'est pas dans la tranche d'âge (45, 65).
OK. Mais que serait ce paramètre signifie que, si vous avez passé "allDrivers" ou "allDraftees" au lieu de "allPilots". Vous semblez vouloir contradictor choses en même temps: magasin de prédicats dans une carte pour être en mesure à un avec une clé de chaîne sans prendre soin de comment il est mis en œuvre, et aussi être en mesure de passer un paramètre à personnaliser le prédicat, mais ils ont tous à faire les choses différemment.

OriginalL'auteur mr.M | 2015-08-23