Scala反射调用object

和反射class不同,反射class和java反射一样,object是静态代码块模式的单例,Scala 反射的核心是 scala.reflect.runtime.universe:代码如下:

object:

Scala 复制代码
object TargetObject{
  def test1(name:String):String = {
    println("11111111")
    "1111"
  }
}

反射调用:

反射 Scala object 核心是通过 staticModule 获取 ModuleMirror:

Scala 复制代码
object MyTest {

  def main(args: Array[String]): Unit = {

    import scala.reflect.runtime.universe
    val classMirror = universe.runtimeMirror(getClass.getClassLoader)
    val staticMirror = classMirror.staticModule("xxx.xxx.TargetBejte")
    val moduleMirror = classMirror.reflectModule(staticMirror)
    val objectMirror = classMirror.reflect(moduleMirror.instance)
    val sayHelloSymbol = moduleMirror.symbol.typeSignature.member(universe.TermName("test1")).asMethod
    val value = objectMirror.reflectMethod(sayHelloSymbol)("yege")
    println(value)

  }

}
相关推荐
秧歌star5196 分钟前
PageHelper 分页失效原因分析与正确实践
后端
疯狂的程序猴10 分钟前
苹果iOS应用签名与上架App Store完整指南包括注意事项
后端
回家路上绕了弯11 分钟前
生产环境服务器变慢?从应急到根因的全流程诊断处理指南
分布式·后端
小胖霞11 分钟前
Node+Express+MySQL 后端生产环境部署,实现注册功能(三)
前端·后端
aiopencode18 分钟前
抓包技术全面指南:原理、工具与应用场景
后端
Teacher.chenchong21 分钟前
R语言实现物种分布预测与生态位分析:多元算法实现物种气候生态位动态分析与分布预测,涵盖数据清洗、模型评价到论文写作全流程
开发语言·算法·r语言
烤麻辣烫37 分钟前
23种设计模式(新手)-7迪米特原则 合成复用原则
java·开发语言·学习·设计模式·intellij-idea
该用户已不存在39 分钟前
Gemini 3.0 发布,Antigravity 掀桌,程序员何去何从?
后端·ai编程·gemini
aiopencode41 分钟前
软件苹果商城上架的流程与团队协作模式 一个项目从开发到发布的完整经历
后端
yeyong41 分钟前
playwright的调试模式,方便调试selector, locator语法及查找效果
后端