假设我有一个 ArrayList,我已将其转换为对象的 ArrayList。我知道我转换的 ArrayList 中的所有对象都是同一类型,但不知道是什么类型。
现在,如果 ArrayList 不为空,我可以获取其中的一个对象并使用 instanceof 运算符来了解实际类型是什么。但是 ArrayList 为空的情况呢?那么我如何确定 Object 实际上是什么类型?可能吗?
编辑:回想起来,我认为空 ArrayList 包含什么类型并不严格。我可以丢弃旧的并构造一个新的空 ArrayList,它是我一开始要寻找的正确类型。
它有点困惑,所以如果有人对如何允许可能不共享相关公共(public)父类(super class)(例如 Integer 和 ArrayList)的大量潜在类型有替代建议,我愿意接受建议。问题是,我有一个类将包含专门设计用于在其中互换使用的其他类。包含的类可以对类型做出假设,因为它们是定义它的类。周围的类不能做出这样的假设,但必须确认它正在指定与已插入其中的包含类相同的类型。
因此我的问题是,因为包含类是通用的(通用指定它正在处理的类型),但它必须确保传递给它的包含类正在返回并在指定给它的类型上运行(它们被设计为单独创建,因此它们匹配的事实必须在插入时确认,而不是在创建时确认)。
最佳答案
不,type erasure确保这一点。
关于java - 查找 ArrayList<Object> 中的特定类型(即 Object = String 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145642/