【发布时间】:2020-03-19 12:38:30
【问题描述】:
我可以通过执行以下操作安全地转换简单的 java 对象:
Object str = "test";
Optional.of(str)
.filter(value -> value instanceof String)
.map(String.class::cast)
.ifPresent(value -> System.out.println("Here is the value: " + value));
但是我怎样才能将对象转换为通用集合呢?
例如:
Object entries = /**/;
// this is unsafe
List<Entry<String, String>> subscriptions = (List<Entry<String, String>>) entries;
我应该如何处理这种情况,是否有任何库(例如 ClassCastUtils)来帮助进行这种转换?
【问题讨论】:
-
你不能。花哨的 lambdas 不会让擦除消失。
-
@user2357112supportsMonica 那么我应该如何处理这种情况呢?
-
@TyulpanTyulpan 你为什么会遇到这种情况?为什么你有
Object? -
你应该解释一下
X,你目前在你的XY问题中询问了Y。 -
请不要只发布一个 sn-p 代码,而是一个正在运行的最小示例,这样我们就不会遇到 XY-Problems 推测您的用例。
标签: java generics java-8 casting classcastexception