2017-02-16 41 views
0

有一種按名稱獲取類的方法,例如Class.forName("com.project.model.User")如何從參數類型的字符串表示中獲取清單

是否可以從字符串表示中獲取清單?例如,有兩種情況:

獲得從類型名稱清單中,無類型參數 - 它的工作原理:

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

如何從類型名稱清單與類型參數:

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

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

環境:scala-2.11.8

回答

1

您可以使用ManifestFactory.classType(cls)來獲取類實例的清單。

import scala.reflect.ManifestFactory 

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

感謝您的回答。有用。但如何獲得具有參數的類型的清單?例如'com.project.event [com.project.model.User]' –

+1

@JohnMullins你不能,它只包含類信息。 –