加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用通配符与通配符的问题

发布时间:2020-12-14 17:44:26 所属栏目:Java 来源:网络整理
导读:我有一个方法返回一个定义为: public MapString,? getData(); 这种方法的实际实现对我来说不是很清楚,但是当我尝试做: obj.getData().put("key","value") 我收到以下编译时错误信息: The method put(String,capture#9-of ?) in the type Map is not appli
我有一个方法返回一个定义为:
public Map<String,?> getData();

这种方法的实际实现对我来说不是很清楚,但是当我尝试做:

obj.getData().put("key","value")

我收到以下编译时错误信息:

The method put(String,capture#9-of ?)
in the type Map
is not applicable for the arguments
(String,String)

问题是什么?字符串不是什么类型的?

提前致谢.

解决方法

通配符表示“值类型参数可能是任何东西” – 这并不意味着“你可以使用它,就像它是任何你想要的”.换句话说,映射< String,UUID>作为Map< String,?>有效 – 但是您不希望能够在其中放置一个String值.

如果你想要一个绝对可以接受字符串值的地图,你想要:

Map<String,? super String>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读