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)

  }

}
相关推荐
源代码•宸2 小时前
分布式缓存-GO(分布式算法之一致性哈希、缓存对外服务化)
开发语言·经验分享·分布式·后端·算法·缓存·golang
云和数据.ChenGuang3 小时前
PHP-FPM返回的File not found.”的本质
开发语言·php·运维工程师·运维技术
It's now3 小时前
Spring AI 基础开发流程
java·人工智能·后端·spring
计算机毕设VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue图书商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
R.lin3 小时前
Java 8日期时间API完全指南
java·开发语言·python
yangpipi-3 小时前
《C++并发编程实战》 第4章 并发操作的同步
开发语言·c++
火钳游侠3 小时前
java单行注释,多行注释,文档注释
java·开发语言
有趣的我4 小时前
C++ 多态介绍
开发语言·c++
fie88894 小时前
波束赋形MATLAB代码实现
开发语言·matlab
夕颜1114 小时前
BeeAI 框架学习记录
后端