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)

  }

}
相关推荐
biubiuibiu5 分钟前
JavaScript核心概念深度解析:位运算与短路逻辑
开发语言·javascript·ecmascript
2401_849644857 分钟前
C++代码重构实战
开发语言·c++·算法
葡萄城技术团队8 分钟前
Hurley:用 Rust 打造的高性能 HTTP 客户端 + 压测工具
开发语言·http·rust
sthnyph9 分钟前
Spring Framework 中文官方文档
java·后端·spring
2301_8154829317 分钟前
C++与WebAssembly集成
开发语言·c++·算法
zb2006412019 分钟前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
码云数智-大飞20 分钟前
React vs Vue:虚拟 DOM 的殊途同归与优化哲学
开发语言
机器学习之心HML22 分钟前
考虑气象因素的贝叶斯优化短期电力负荷预测研究,MATLAB代码
开发语言·matlab
青柠代码录29 分钟前
【MySQL】事务:事务的隔离级别
后端
分享牛33 分钟前
Operaton入门到精通22-Operaton 2.0 升级指南:Spring Boot 4 核心变更详解
java·spring boot·后端