gpt4 book ai didi

java - 如何从具有不同值类型的Map中获取值? ( java )

转载 作者:行者123 更新时间:2023-12-01 19:58:47 27 4
gpt4 key购买 nike

我有一个返回 Map<String, Object> 的实用函数,但该 Map 始终具有以下结构:

{ "a": <something of type1>, "b": <something of type2> }

在外部函数中,我调用这个实用函数,我想获取与键 a 关联的值。 。我正在尝试做一些事情,例如:

Map<String, Object> data = findData(input); // findData is the utility function
Type1 type1obj = data.get("a"); // error here

但是后来我收到了不兼容类型错误:

Required: com.blah.blah.Type1
Found: java.lang.Object

我该如何获取与键 a 关联的值?仅供引用:我对 Java 非常陌生。

最佳答案

您需要将从 Map 检索到的对象转换为您需要的类型:

Type1 type1obj = (Type1) data.get("a");

但是对于上面的代码,您必须确保与键“a”关联的值的类型是 Type1,否则将在运行时抛出 ClassCastException

如果你不能保证检索到的对象的类型,你可以这样检查:

Object obj = data.get("a");
Type1 type1obj;
if(obj instanceof Type1) {
type1obj = (Type1) obj;
} else {
//to print error log or do some workaround
}

关于java - 如何从具有不同值类型的Map中获取值? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48654907/

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