filtrage d'une liste de tableaux à l'aide d'un objet de champ

J'ai une liste de tableaux qui est rempli par les Objets.

Ma classe d'objet appelé Article qui a deux champs ;

public class Article {

    private int codeArt;
    private String desArt;

  public Article(int aInt, String string) {
        this.desArt = string;
        this.codeArt = aInt;
    }

    public int getCodeArt() {return codeArt; }
    public void setCodeArt(int codeArt) {this.codeArt = codeArt;}
    public String getDesArt() {return desArt;}
    public void setDesArt(String desArt) { this.desArt = desArt;}

}

Je veux filtrer ma Liste à l'aide de la desArt champ, et pour le test j'ai utilisé la Chaîne "test".

J'ai utilisé la Goyave de google qui me permet de filtrer une liste de tableaux.

c'est le code que j'ai essayé :

private List<gestionstock.Article> listArticles = new ArrayList<>();

//Here the I've filled my ArrayList

private List<gestionstock.Article> filteredList filteredList = Lists.newArrayList(Collections2.filter(listArticles, Predicates.containsPattern("test")));

mais ce code ne fonctionne pas.

Comment n'est-il pas de travail? Je parierais pour une erreur de compilation...
parce que je suis filtrage à l'aide d'une chaîne, j'ai t filtre à l'aide de l'objet, mais je ne sais pas comment le faire.
Vous devez mettre en place votre propre Predicate, aucun de ceux fournis par Predicates (sauf pour notNull()/isNull()) sera en mesure de filtrer votre objet dans une manière significative. Avez-vous lu Fonctionnelle expliqué?
Je ne suis pas aussi familier que je devrais être avec la Goyave de la bibliothèque, mais je pense que vous devez utiliser le Prédicat.composer(Prédicat<B> prédicat, la Fonction<Un,? extends B> function) pour créer une nouvelle fonction pour tester si le champ est correct. Je vais poster une réponse en quelques minutes, avec une sorte de solution exacte. Mais d'après ce que je comprends, c'est ce que vous devriez faire.

OriginalL'auteur Aimad Majdou | 2013-05-31