类似这样的错误提示:
Type inference failed. Expected type mismatch: Inferred type is HashSet<String>? but Set<String> was expected.
是不是一眼看上去,以为是语言有问题,无法使用父类型代表若干个可能的子类型,进而无法针对抽象编程?
如果这么想就错了。实际上,也可以是可空类型与不可空类型不匹配。例如,此处要求非可空类型,但传回的是可空类型。要把“?”符号看清楚,不要看漏。
本文解析了一种常见的类型推断失败错误:期望类型为Set<String>,而推断类型为HashSet<String>?的情况。该问题通常源于可空类型与非可空类型的不匹配,提醒开发者在处理类型时注意区分可空与非可空。
类似这样的错误提示:
Type inference failed. Expected type mismatch: Inferred type is HashSet<String>? but Set<String> was expected.
是不是一眼看上去,以为是语言有问题,无法使用父类型代表若干个可能的子类型,进而无法针对抽象编程?
如果这么想就错了。实际上,也可以是可空类型与不可空类型不匹配。例如,此处要求非可空类型,但传回的是可空类型。要把“?”符号看清楚,不要看漏。
7609
399
1万+
5224

被折叠的 条评论
为什么被折叠?