簡體   English   中英

Scala:從字符串生成類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM