我一直在想Java中是否有一个函数可以满足我的需求。我想要遍历一个ArrayList(比如说,这个ArrayList包含了继承自A类的B类和C类对象)。我的意图是仅仅遍历其中B类对象(例如在下面的代码示例中)。请问如何实现这个功能呢?而且不需要写过多的代码。
主类:
主类:
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 {
}
编辑:因为很多人回答了这个问题:我知道 instanceof 的用法。我想要一种更快的方法来循环遍历数组中所有类是 B 的对象。