有没有办法将 ArrayList 类子类化为只允许特定类(或其子类)的对象。
具体来说,我有一个名为 RecordStatus 的基类,我需要使用基于该类的对象创建 ArrayList。
我知道基于 ArrayList<RecordStatus>
创建一个类很容易但是,每次我从数组中检索一个元素时,我都需要将它转换为原始类。
有更简单的方法吗?
最佳答案
Is there a way to subclass the ArrayList class to only allow objects of a specific class (or subclass thereof). Specifically, I have a base class called RecordStatus and I need to create ArrayLists with objects based on this class.
这正是 Java 中的通用构造允许您执行的操作。请注意,您不必强制转换来自 ArrayList<RecordStatus>
的实例。只要RecordStatus
的所有子类具有相同的 API。如果子类具有不同的方法/字段,您只需要这样做。例如,如果 RecordStatus
有一个方法 setStatus
,子类也是如此,不需要强制转换,因为 Java 多态性的动态分派(dispatch)将根据在运行时调用方法的实例类型确保实现的方法是正确的。
关于java - 只允许 ArrayList 中的特定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7704617/