[英]Scala: generate class from a string
我想從字符串動態創建一個類。
字符串具有類的確切名稱(順便說一句是Java類)
例如
val classString = "gui.MainFrame"
我用創建課程
val mainClass: Class[_] = Class.forName(classString)
Scala創建了該類,但是如果我想使用該類,例如
AppExecutor.executeNoBlock(classOf[mainClass])
Scala告訴我找不到mainmain類型。
如果我以這種方式使用
AppExecutor.executeNoBlock(mainClass.asInstanceOf)
So how can i use this class now? 它說那么我現在如何使用該類?
“你錯了。”
classOf
接受類型參數並返回Class
對象。 您不能將Class
對象作為類型參數傳遞,因此會出現錯誤。
另外,您已經在mainClass
擁有Class
對象。 如果要使用classOf
,則可以執行以下操作:
val mainClass = classOf[gui.MainFrame]
代替。 但是否則,您應該堅持以前的方法,即:
val mainClass = Class.forName(classString)
如果您要使用的代碼是org.jemmy.fx.AppExecutor
,則可以直接使用mainClass
調用它:
AppExecutor.executeNoBlock(mainClass.asInstanceOf[Class[_ <: javafx.application.Application]])
由於該方法顯然具有限定的類型參數(即,不是普通的通配符Class[_]
或Java符號中的Class<?>
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.