J'utilise la bibliothèque de goyaves et j'ai remarqué qu'un Prédicat n'est pas défini - "supérieur à". Y a-t-il un autre endroit où je devrais rechercher des prédicats de base comme celui-ci ou est-ce que je suis condamné à créer mon propre pot de soutien fonctionnel qui inclut des choses comme celle-ci et l'importait dans tous mes projets? Y a-t-il une raison pour laquelle ils n'incluraient pas cela, mais prendraient le temps de faire un tas d'autres prédicats (dans la classe des prédicats)? p>
4 Réponses :
prédicate Code>
recueille des prédicats communs, mais pas plus d'un. Je ne pense pas que Guava offre une telle chose. Vous pouvez essayer de classer une demande de bug / fonctionnalité sur le site du projet GUAVA: http: // code.google.com/p/guava-libraires/issues/list p>
avec l'interface code> prédicate code> et les différentes méthodes d'utilité pour filtrer les collections avec un prédicat, GUAVA fournit un noyau que vous pouvez construire sur. p>
La classe code> prédicats code> vous permet de créer des prédicats couramment utilisés. Je suppose que vous pouvez faire une demande d'amélioration de la question suivante, comme suggéré par Mike, mais je ne suis pas sûr qu'ils l'ajoutent, car Guava s'efforce d'un ratio de puissance élevé à poids. P>
S'ils devaient ajouter le prédicat "Grandthan", ils auraient également besoin d'ajouter "GrandOrqualhaman", "Baserthan", "MOBESTHANELLANTHAN" ... Ce serait utile, mais c'est une grande partie de "API BLOAT" pour un prédicat qui ne prend qu'une ligne à mettre en œuvre. Vaut la peine d'essayer, cependant. P>
Une meilleure solution peut être d'avoir un projet open-source qui étend guava avec toutes les fonctionnalités "Nice à avoir" qui n'est pas disponible dans Guava appropriée. Nous pourrions appeler cela "Guava-restes" ou quelque chose;) Ou peut-être demander au Projet Biscotti à Ajoutez de telles méthodes utilitaires (elles ont déjà une fonctionnalité «agréable à avoir» qui n'est pas in Guava). P>
Ouais, je suppose que depuis qu'ils ont écrit, ils décident de décider de ce qui est "Bloat" et de ce qui est noyau. En ce qui concerne l'argument de doublure, je dirais que vous n'avez pas besoin de toutes les 3 opérations logiques (et ou non) lorsque celles-ci peuvent toutes être implémentées en une ligne comme des combinaisons de prédicats «Nand» :)
Bon point. En fait, je pense que je sonne bien dure quand j'ai dit que ce serait "API BLOAT" d'ajouter de tels prédicats. Je crois que ceux-ci seraient assez utiles. J'aime beaucoup l'idée d'avoir une classe "gamme" qui produit ces prédicats, cependant (voir la réponse de Sean Patrick Floyd). Cela fonctionnerait également pour des intervalles, etc.
J'ai déjà Demande de cette fonctionnalité et a été référé à Ce numéro . Apparemment, cette fonctionnalité sera mise en œuvre via des gammes, qui implémenteront prédicat code>. P>
Gamme et Je viens d'afficher gammes < / S> (mise à jour: les méthodes statiques sur les gammes code> ont été pliées dans
plage code> à partir de GUAVA 14.0) ont été ajoutés pour R10. Vous serez capable de faire:
plage code> s ont beaucoup d'autres fonctionnalités puissantes, y compris la possibilité d'afficher une plage
code > En tant que contiguë
immutatablestoredset code> sur un domaine discret: p>
integer code> s ici, mais le
Plage Code> Stuff fonctionne pour tout
comparable code>.
Contiguycset Code> nécessite un Discrédomain pour le type ... GUAVA fournit
discretDomain.integers () code>,
.LONGS () code> et
.bigintèges () code>. pour le moment. p> p>