0

如何用字符串定义泛型?例如,如果我想写

 def createMap(foo: String, bar: String) = {
   Map[foo, bar]()
 }

 val myMap = createMap("String", "Int")

如何将 foo 和 bar 转换为正确的类型?我在文档中没有看到太多关于此的内容。

4

1 回答 1

2
  1. 看:

    def createMap[foo, bar] = {
      Map[foo, bar]()
    }
    
    val myMap = createMap[`String`, `Int`]
    

    它看起来不像所需的代码吗?

  2. 如果您真的希望在运行时创建一个在编译时类型未知的映射,那么您可以简单地使用Map[Any, Any]()+ 类型转换。我认为使用字符串类型标识符不可能实现类型安全。(要获得一个用于运行时检查的类,请参见另一个问题

  3. 似乎可以使用宏。但是,我不是提供实施的专家。

于 2013-08-13T21:16:51.050 回答