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)

  }

}
相关推荐
Mos_x18 小时前
使用Docker构建Node.js应用的详细指南
java·后端
LucianaiB18 小时前
【CodeBuddy + GLM-4.6】超强联合打造一个梦幻搭子Agent
后端
网络精创大傻18 小时前
PHP 与 Node.js:实际性能对比
开发语言·node.js·php
wei_shuo18 小时前
openEuler 集群部署Nova计算服务:控制节点与计算节点实战操作
后端
snakecy18 小时前
过关斩将编程题
开发语言·python
Spirit_NKlaus18 小时前
Springboot自定义配置解密处理器
java·spring boot·后端
diannao72018 小时前
实时将大模型的解决方案转换为随机应变的机器人指令
开发语言·windows·python·机器人
Nebula_g19 小时前
C语言应用实例:斐波那契数列与其其他应用
c语言·开发语言·后端·学习·算法
梅梅绵绵冰19 小时前
SpringAOP的相关概念
java·开发语言
Xiaoyu Wang19 小时前
GC垃圾回收
java·开发语言·jvm