gpt4 book ai didi

Scala:将参数名称和类型存储在 HashMap 中

转载 作者:行者123 更新时间:2023-12-05 01:00:53 26 4
gpt4 key购买 nike

我对 Scala 比较陌生。我正在尝试维护一个哈希映射,其中包含哈希映射中的属性列表及其类型。
我试过这样的事情

val attribTemplate = new mutable.LinkedHashMap[String, Class]

attribTemplate("attr1") = classOf[Int]

attribTemplate("attr2") = classOf[String]

斯卡拉不喜欢它。我想稍后对这种类型信息进行模式匹配
我怎样才能做到这一点?
谢谢

最佳答案

Class是通用的,而 Scala 在允许您忽略此类事实方面不像 Java 那样傲慢。以下将正常工作:

val attribTemplate = new LinkedHashMap[String, Class[_]]
attribTemplate("attr1") = classOf[Int]
attribTemplate("attr2") = classOf[String]

进而:
scala> println(attribTemplate)
Map(attr1 -> int, attr2 -> class java.lang.String)

不过,这几乎肯定是一个坏主意,而且它不是惯用的 Scala。特别是如果您是 Scala 的新手,我建议您就您的特定用例提出另一个问题,并尽可能长时间避免反射(和可变性,如果可以的话)。

关于Scala:将参数名称和类型存储在 HashMap 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747991/

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