为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Hashmap<String, Object> 获取值?

如何从 Hashmap<String, Object> 获取值?

至尊宝的传说 2023-07-13 13:56:23
我需要一个可以包含任何类型值的映射。所以我尝试使用HashMap。但是,如果我尝试从映射中获取值,IDE 会提示类型不匹配。这是我的代码的一部分:Map<String, Object> state1 = new HashMap<>();state1.put("location", exit1);state1.put("direction", direction);state1.put("number", 0);Deque<Map> q = new ArrayDeque<>();q.add(state1);List<Integer> numbers = new ArrayList<>();while (!q.isEmpty()) {    Map<String, Object> state = q.poll();    Pair location = state.get("location");变量exit1、Direction已经在这部分之前定义,因此您可以忽略它。另外,您不必关心这部分下面的代码。我的 IDE 说该行Map<String, Object> state = q.poll();具有不兼容的类型 -需要配对,但找到了对象。我怎样才能使其兼容?我正在解决一个只能运行一个文件的问题,所以我无法实现一个新类。
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

...

Pair location = null;

if(state.get("location") instanceof Pair){

  Pair location = (Pair)state.get("location");

}

else{

...

}


查看完整回答
反对 回复 2023-07-13
?
aluckdog

TA贡献1847条经验 获得超7个赞

您可以像这样指定泛型类型:

Deque<Map<String, Object>> q = new ArrayDeque<>();


查看完整回答
反对 回复 2023-07-13
  • 2 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信