gpt4 book ai didi

java - Java Hashmap 的类型系统是什么?

转载 作者:行者123 更新时间:2023-11-30 06:31:58 28 4
gpt4 key购买 nike

我想用散列图存储实体的属性。该值是一个内置的 intListString .

name : "John Smith"
attributes:
"seniority" : (int) 7
"tags" : List<String>("asst_prof","cs_dept")
"another_attrib" : (int) 3

在阅读了 Google 提供的各种教程后,我对 map 的打字系统感到困惑。我最接近的是使用 String 的东西键和 Object值。


问题:如何创建 Hashmap 并插入 int 的值?或 List<String> , 所以当我获取值时,它是 类型转换(标识为类型的成员)intList<String> ,不是 Object .

我依赖于 Drools Expert 包,它 accesses values from maps by itself ,所以类型转换不在我的控制范围内

// Same as attributes.get("jsmith").isValid()
Person( attributes["jsmith"].valid )

最佳答案

你不能。要么使用 Map 的基本形式将值作为对象存储和返回,然后您必须自己转换它们:

Object value = map.get(key);

if (value instanceof List<String>) {
List<String> myList = (List<String>) value;
}

使用 int 时,您不能存储原始类型 int,但它会自动装箱为 Integer。所以你必须检查 instanceof整数,然后调用.intValue()Integer 上对象。

要使对象作为对象返回,您必须使用泛型,但不能混合类型。所以你必须创建一个 List<String> 的 map 属性和另一个用于 int 属性。

关于java - Java Hashmap 的类型系统是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9275046/

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