Je me suis interrogé sur une fonction en Java, qui, je l'espère, existe. Je veux itérer à travers une ArrayList (disons de classe A), qui contient des objets de classe B et C qui tous deux étendent A. L'idée, c'est que je veux seulement itérer à travers (par exemple) les objets de la classe B dans l'ArrayList.
Comment est-ce possible, comme l'exemple court dans le code ci-dessous, et sans l'exemple long ?
La classe principale :
import java.util.*;
public class Test {
public static void main(String[] args) {
new Test ();
}
Test() {
ArrayList<A> a = new ArrayList<A> ();
a.add (new B ());
a.add (new C ());
a.add (new C ());
a.add (new B ());
a.add (new C ());
for (A aObject : a) { // this works, I want it shorter
if (aObject instanceof B) {
B b = (B) aObject;
System.out.println (b.hi);
}
}
for (B b : a) // like this?
System.out.println (b.hi);
}
}
A :
public class A {
}
B :
public class B extends A {
String hi = "hi";
}
C :
public class C extends A {
}
EDIT : Parce que beaucoup de personnes répondent à cette question : Je connais l'utilisation de instanceof. Je veux un moyen plus rapide de parcourir en boucle tous les objets du tableau, dont la classe est B.