8
votes

Où trouver des prédicats de base comme le Grandthan pour Guava?

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)?


0 commentaires

4 Réponses :


1
votes

prédicate 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


0 commentaires

7
votes

avec l'interface prédicate 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.

La classe prédicats 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.

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.

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).


2 commentaires

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.



7
votes

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 .


0 commentaires

15
votes

Gamme et gammes < / S> (mise à jour: les méthodes statiques sur les gammes ont été pliées dans plage à partir de GUAVA 14.0) ont été ajoutés pour R10. Vous serez capable de faire: xxx

plage s ont beaucoup d'autres fonctionnalités puissantes, y compris la possibilité d'afficher une plage En tant que contiguë immutatablestoredset sur un domaine discret: xxx

Je viens d'afficher integer s ici, mais le Plage Stuff fonctionne pour tout comparable . Contiguycset nécessite un Discrédomain pour le type ... GUAVA fournit discretDomain.integers () , .LONGS () et .bigintèges () . pour le moment.


0 commentaires