当前位置: 首页 > 知识库问答 >
问题:

在scala项目的运行时加载类

贺波
2023-03-14

我想在运行时加载一些scala类,该类在我的scala项目中呈现。更准确地说,在我项目的根文件夹中,我有tmpcaseclass.scala:

class TmpHBaseCaseClass(val adresse:String,val age:Int,val nom:String,val id:Int,val salaire:Float)

我想编译它,并在运行时使用工具箱,如下所示:

val tb = universe.runtimeMirror(getClass.getClassLoader).mkToolBox()
  val clazz = tb.compile(tb.parse("./TmpCaseClass.scala"))().asInstanceOf[Class[_]]
  val ctor = clazz.getDeclaredConstructors()(0)
  val instance = ctor.newInstance()

但我遇到了follwing错误:

val clazz = tb.compile(tb.parse("./TmpCaseClass.scala"))().asInstanceOf[Class[_]]

共有1个答案

颜宸
2023-03-14

1)尝试解析文件内容,而不是文件名。

2)此外,您也不能强制转换为,因为编译返回单元。您可能需要添加类似scala.reflect.classtag[TmpCaseClass].runtimeClass这样的另一行。如果需要的话,您还可以获得树(AST)作为tb.parse的结果。

 类似资料:
  • 我使用的是kotlin编程语言的spring Boot2.0。在我的项目中,我使用Java类和Kotlin类,但是当我使用gradle构建项目并在终端上运行以下命令时

  • 问题内容: 我试图在运行时将jar文件添加到classpath。我用这个代码 系统输出打印此URL: 我正在仔细检查此路径,此jar存在。即使这个测试也显示com.mysql.jdbc。驱动程序类存在。 但是,当我使用此Class.forName(driver)时,仍然会收到java.lang.ClassNotFoundException。此代码有什么问题? 问题答案: URL可以,但是您仍然尝试

  • 在我的play-scala应用程序中,我在webpack.config.js函数中运行一个命令 输出:{path:__dirname+'/public/compiled',文件名:'bundle.js'} 谢谢 错误内部服务器错误,针对(GET)[/assets/compiled/bundle.js]->

  • 我正试图创建我的第一个“Hello World”Scala项目,使用Maven作为构建工具,IntelliJ作为我的IDE。在运行mvn包时,我不断遇到以下错误。 以下是完整的错误:未能执行目标组织。scala工具:maven scala插件:2.15.2:compile(默认)on project couchbase-test-3:wrap:org。阿帕奇。平民执行董事。ExecuteExcep

  • 我在intellij中创建了一个gradle/scala项目。这是我的项目结构 这些是我build.gradle文件的内容 主要课程内容 当我试图构建jar并执行它时,会出现一个错误。这里可能出了什么错?

  • 我试图在scala中使用一个主对象,但SBT返回以下消息: 正如您可以在我的文件中看到的那样,我想使用一个彼此体面的多依赖项设置。 该项目的文件夹具有内部版本。根文件夹中的sbt文件,以及另外两个文件夹,