在父类的ArrayList中区分每个子类,可以通过以下几种方式实现:
ArrayList<ParentClass> list = new ArrayList<>();
list.add(new ChildClass1());
list.add(new ChildClass2());
for (ParentClass obj : list) {
if (obj instanceof ChildClass1) {
ChildClass1 child1 = (ChildClass1) obj;
// 处理ChildClass1对象
} else if (obj instanceof ChildClass2) {
ChildClass2 child2 = (ChildClass2) obj;
// 处理ChildClass2对象
}
}
class ParentClass {
protected String type;
public String getType() {
return type;
}
}
class ChildClass1 extends ParentClass {
public ChildClass1() {
type = "ChildClass1";
}
}
class ChildClass2 extends ParentClass {
public ChildClass2() {
type = "ChildClass2";
}
}
ArrayList<ParentClass> list = new ArrayList<>();
list.add(new ChildClass1());
list.add(new ChildClass2());
for (ParentClass obj : list) {
if (obj.getType().equals("ChildClass1")) {
// 处理ChildClass1对象
} else if (obj.getType().equals("ChildClass2")) {
// 处理ChildClass2对象
}
}
enum ChildType {
CHILD_CLASS_1,
CHILD_CLASS_2
}
class ParentClass {
protected ChildType type;
public ChildType getType() {
return type;
}
}
class ChildClass1 extends ParentClass {
public ChildClass1() {
type = ChildType.CHILD_CLASS_1;
}
}
class ChildClass2 extends ParentClass {
public ChildClass2() {
type = ChildType.CHILD_CLASS_2;
}
}
ArrayList<ParentClass> list = new ArrayList<>();
list.add(new ChildClass1());
list.add(new ChildClass2());
for (ParentClass obj : list) {
if (obj.getType() == ChildType.CHILD_CLASS_1) {
// 处理ChildClass1对象
} else if (obj.getType() == ChildType.CHILD_CLASS_2) {
// 处理ChildClass2对象
}
}
以上是几种在父类的ArrayList中区分每个子类的方法,具体选择哪种方式取决于实际需求和设计。
领取专属 10元无门槛券
手把手带您无忧上云