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)

  }

}
相关推荐
devmoon2 分钟前
为 Pallet 搭建最小化 Mock Runtime 并编写单元测试环境
开发语言·单元测试·区块链·智能合约·polkadot
Elieal14 分钟前
SpringBoot 数据层开发与企业信息管理系统实战
java·spring boot·后端
Coder_Boy_16 分钟前
Java开发者破局指南:跳出内卷,借AI赋能,搭建系统化知识体系
java·开发语言·人工智能·spring boot·后端·spring
独自破碎E20 分钟前
BISHI23 小红书推荐系统
java·后端·struts
Mr_Xuhhh22 分钟前
介绍一下ref
开发语言·c++·算法
gustt25 分钟前
构建全栈AI应用:集成Ollama开源大模型
前端·后端·ollama
nbsaas-boot27 分钟前
软件开发最核心的理念:接口化与组件化
开发语言
lsx20240630 分钟前
Java 对象概述
开发语言
千寻girling31 分钟前
《 MongoDB 教程 》—— 不可多得的 MongoDB
前端·后端·面试
Wiittch31 分钟前
HashMap源码深度剖析
后端