gpt4 book ai didi

java - 使用 Iterables、Maps、Objects 进行参数转换?

转载 作者:行者123 更新时间:2023-12-02 04:58:00 25 4
gpt4 key购买 nike

我有一个类型的变量:

Iterable<Map<String,Object>>

我正在尝试将其返回为类型:

Iterable<Map<String,?>>

编译器说:

argument mismatch; Iterable<Map<String,Object>>
cannot be converted to Iterable<Map<String,?>>

有谁知道如何强制编译器在这里“做正确的事情”,或者这在某种程度上是不可能的?

最佳答案

Iterable<T>应该是Iterator<T>的“生产者” ,它又是其类型参数 T 的“生产者” (只有一个方法返回 T ,没有方法接受 T )。因此,根据 PECS(生产者 extends ,消费者 super )规则,它应该始终与 extends 一起使用。通配符无处不在。

如果你有一个类型的变量

Iterable<? extends Map<String,Object>>

你将其返回为

Iterable<? extends Map<String,?>>

没问题。每当你得到 Iterator从中,您将类似地输入 Iterator<? extends Something> .

关于java - 使用 Iterables、Maps、Objects 进行参数转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28588366/

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