Bonjour,
J'ai une liste d'objets différents dans une ArrayList et je souhaite la parcourir pour en extraire tous ceux qui sont d'une certaine classe (et de ses classes dérivées).
Par exemple j'ai une ArrayList qui contient un objet de la classe Integer, un de la classe InputStream et un de la classe AudioInputStream.
Je voudrais faire une méthode
ArrayList filter(ArrayList toFilter, Class classFilter) { } qui si je lui passe InputStream.getClass() en paramètre me renvoie une ArrayList avec l'objet de la classe InputStream et celui de la classe AudioInputStream (puisque héritée de de InputStream).
Mon problème vient du fait que je n'arrive pas à comparer deux Class. Une méthode du type ArrayList filter(ArrayList toFilter, Object classFilter) { } pourrait fonctionner puisqu'il suffirait de faire un instanceof entre chacun des objets de "toFilter" et classFilter.getClass() pourrait résoudre le problème mais la solution n'est pas très élégante puisque je dois instancier l'objet à passer au filtre. Je souhaiterais donc un moyen de filtrer avec une méthode de type "ArrayList filter(ArrayList toFilter, Class classFilter)".
Merci d'avance à tous ceux qui pourraient me donner un moyen de faire ça.
Partager