java - 查找 ArrayList<Object> 中的特定类型(即 Object = String 等)

标签 java generics casting

假设我有一个 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/

相关文章:

java - 在java程序中获取SVN工作副本的当前修订号

c# - 使用泛型 T 确定编译器选择的重载

java - 泛型方法不覆盖父类(super class)中类似的泛型方法-> 使用哪一个?

Java:使用lambda参数获取实际类型的泛型方法

hadoop - Hive - 在不知道列名的情况下更改所有列的列类型

c# - 动态转换 Microsoft.Azure.Documents 如何导致反序列化?

java - 在 Apache Tomcat 上部署 .war 时如何使用给定的 application.properties 文件?

java - Jersey(Java 的 REST 框架)在生产中广泛使用吗?

java - 只需要支持随机访问和追加的线程安全列表

swift - 为什么在 Swift 中自动向上转换很好