1

我有一个相对简单的对象,它有一个发出 HTTP 请求的方法。请求根据类类型自动提取数据并吐出必要的对象。

问题是我似乎无法动态引用该类。编码:

object abstractObject extends APIResource {

  def retrieve(clazz: String, key: String) = { 
    request("GET", instanceURL(key)).extract[clazz]
  }

}

clazz定义要传递的类型,extract允许请求将 JSON 哈希即时解析为对象。我需要以某种方式使用该 String 来动态引用类类型并将其传递给extract.

有什么想法或者我需要重新设计它吗?

4

1 回答 1

1

类型仅在编译时存在,因此您不能从运行时值转换为类型。好吧,您可以使用 Scala 2.10 的反射,它基本上会在运行时生成您需要的代码,然后执行。您需要将编译器和反射 jar 文件与应用程序捆绑在一起。

但是,对于您的提议,这些都不应该是必需的。一个ClassorManifest对象就足够了——当然,您使用的 API 可能没有提供这样的替代方案。

于 2012-06-08T04:18:00.613 回答