例如,假设您有两个类:

public class TestA {}
public class TestB extends TestA{}

我有一个返回List<TestA>的方法,我想把列表中的所有对象都转换为TestB,这样我就得到了List<TestB>.

推荐答案

简单地强制转换为List<TestB>几乎是可行的;但是它不起作用,因为您不能将一个参数的泛型类型强制转换为另一个参数.但是,您可以强制转换中间通配符类型,这将是允许的(因为您可以转换为通配符类型,只是带有未选中的警告):

List<TestB> variable = (List<TestB>)(List<?>) collectionOfListA;

Java相关问答推荐

如何在使用 Stream 的同时将 Long 转换为 BigDecimal

执行程序暂停并且不处理挂起的队列

如何判断spark中的列数据类型

在 Biojava 中计算氨基酸的理化性质

如何使用 Spring SAML2 禁用自动生成的页面 /login 和 /logout?

Java Collections API:缺少 List 和 Deque 的序列(有序集合)超级接口?

JVM字节码中的“dup2_x2”指令有什么用?

如何将 MySQL 查询结果放入 java 中的 List

EntityManager.remove 和 EntityManager.persist 上的 JPA 重复条目错误

如何在不克隆的情况下使用 JGIT 将文件夹添加到 GitHub 存储库?

让 Jackson 使用 GSON 注释

如何在Java中合并包含相同值的多个数组

将 JGIT 库添加到项目中会导致资源重叠

Jolt 变换 Json 数组保留其余字段

使用方法返回的收集器时泛型类型不匹配 - Java 17

了解以下代码片段中的异常处理

Java - 单个语句中的变量声明、赋值和空值判断

关闭应用程序时单击通知按钮打开活动

Android - 中止崩溃

无法解析方法“assertThat(int)”