首页 > 解决方案 > 如何将通用对象转换为列表JDK 11 上没有未经检查的强制转换警告

问题描述

假设我在一个方法上有一个 Object 参数,我想使用 lambda 将它投射到 List 上。

这是我的代码,我使用的是 JDK 11:

Optional.ofNullable(myobject).map(o -> (List<MyEntity>)o).ifPresent(o -> {
   // should be ok, however, I get an unchecked cast warning because of (List<String>)o
});

实际上我也可以执行以下操作,但我对 MyEntity 的引用松散了:

Optional.ofNullable(myobject).map(List.class::cast).ifPresent(o -> {
   // Simply converted to a generic List
});

有什么提示吗?

标签: javalambdajava-11

解决方案


推荐阅读