gpt4 book ai didi

java - 为什么这个嵌套的泛型转换会导致编译器错误

转载 作者:行者123 更新时间:2023-11-30 09:59:07 24 4
gpt4 key购买 nike

<分区>

对不起,如果之前有人问过这个问题(我几乎可以肯定)但我找不到正确的关键字从一堆不相关的泛型问题中挖掘出来。

简而言之

这个有效:

Object      a = null;
Set<Object> b = (Set<Object>)a;

那么为什么会出现编译错误?

Set<Object>      c = null;
Set<Set<Object>> d = (Set<Set<Object>>)c;

为什么这个简单的解决方法有效?

Set<Object>      e = null;
Set<?> f = (Set<?>)e;
Set<Set<Object>> g = (Set<Set<Object>>)f;

长版:(保留遗留但不再与问题相关)

我有一个返回 Map<Number, Object> 的库方法预处理的 JSON 消息。手动深度类型检查后,我需要将其转换为 Map<Number, Map<String, Map<String, Object>>> 并返回,期待一个未经检查的转换警告,我可以忽略它,因为我刚刚检查过它。

但是我遇到了编译器错误:

Error:(61, 10) java: Cannot cast from java.util.Map<java.lang.Number,java.lang.Object> to java.util.Map<java.lang.Number,java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>>>

或以更具可读性的形式(基于 IDE 中的错误):

Inconvertible types; cannot cast
'Map<Number,Object>' to
'Map<Number,Map<String,Map<String,Object>>>'
)

[编辑]如何问题更改为为什么问题。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com