如何从带有参数

时间:2017-02-16 15:59:53

标签: scala reflection

有一种方法可以按名称获取类,例如Class.forName("com.project.model.User")

是否可以从字符串表示中获取清单?例如,有两种情况:

从没有类型参数的类型名称获取清单 - 它可以工作:

val str = "com.project.model.User"
val mf = Manifest.classType(Class.forName(str))

如何从type-name获取带有类型参数的清单:

val str = "com.project.model.Event[User]"

val mf: Manifest[Event[User]] = howToGetManifestByName(str)  // ???

环境:scala-2.11.8

1 个答案:

答案 0 :(得分:2)

您可以使用ManifestFactory.classType(cls)获取类实例的清单。

import scala.reflect.ManifestFactory

class MyClass(str: String)
val c = Class.forName("MyClass")
val manifest = ManifestFactory.classType(c)