如何使用字符串定义泛型?例如,如果我想写
def createMap(foo: String, bar: String) = {
Map[foo, bar]()
}
val myMap = createMap("String", "Int")
我怎样才能将foo和bar转换为正确的类型?我在文档中没有看到太多关于此的内容。
答案 0 :(得分:2)
查找
def createMap[foo, bar] = {
Map[foo, bar]()
}
val myMap = createMap[`String`, `Int`]
它看起来与所需代码不相似吗?
如果您真的希望在运行时创建一个在编译时未知类型的地图,那么您只需使用Map[Any, Any]()
+类型转换。我不认为用字符串类型标识符实现类型安全是不可能的。
(要获取运行时检查的类,请参阅another question)
似乎可以使用macros。但是,我不是提供实施的专家。