java - 如何强制对象集合是同一子类的实例

标签 java inheritance class-hierarchy

假设我们有以下类层次结构:

public abstract class Parent {
    // body of parent
}

public class ChildA {
    // body of child A
}

public class ChildB {
    // body of child B
}

我们有一个 Parent 类型的对象集合以及一种提供该集合的方法:

List<Parent> list;

public void add(Parent newParent) {
    list.add(newParents);
}

当我们开始向该列表添加元素时,如何确保它们只是同一类的实例? ChildA 的实例或 ChildB 的实例,但不能同时存在。

最佳答案

你可以做类似的事情

public void add(Parent newParent, Class<? extends Parent> clazz) {
    if(clazz.equals(list.get(0).getClass()) {
        list.add(newParents);
    }
}

关于java - 如何强制对象集合是同一子类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36568950/

相关文章:

java - 在启动时获取正确的 Id 小部件

java - getResourceAsStream 上下文初始化

java - 非常简单的随机数生成器编译问题

c++ - 哪个玩家类别是由更好的层次结构创建的?

c++ - 在指针类中引用虚函数时出现段错误

c# - 编译时树结构

Java Stunt 和 URI 发现

java - 为什么我的循环方法越来越快?

c# - C# 中的继承树和 protected 构造函数

Java继承: Hockey fights in the HockeyTeam class