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)

  }

}
相关推荐
用户83562907805112 分钟前
用Python轻松管理Word页脚:批量处理与多节文档技巧
后端·python
lly20240613 分钟前
jEasyUI 设置排序指南
开发语言
一起努力啊~24 分钟前
算法刷题--长度最小的子数组
开发语言·数据结构·算法·leetcode
想用offer打牌30 分钟前
一站式了解Spring AI Alibaba的流式输出
java·人工智能·后端
秋说34 分钟前
华为 DevKit 25.2.rc1 源码迁移分析使用教程(openEuler + ARM64)
后端
ServBay36 分钟前
C# 成为 2025 年的编程语言,7个C#技巧助力开发效率
后端·c#·.net
还债大湿兄42 分钟前
huggingface.co 下载有些要给权限的模型 小记录
开发语言·前端·javascript
bkspiderx1 小时前
C++中的map容器:键值对的有序管理与高效检索
开发语言·c++·stl·map
Hard but lovely1 小时前
Linux: 线程同步-- 基于条件变量 &&生产消费模型
linux·开发语言·c++
汤姆yu1 小时前
基于python大数据的协同过滤音乐推荐系统
大数据·开发语言·python