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)

  }

}
相关推荐
2501_940007891 分钟前
Flutter for OpenHarmony三国杀攻略App实战 - 战绩记录功能实现
开发语言·javascript·flutter
naruto_lnq1 分钟前
C++中的桥接模式
开发语言·c++·算法
无限进步_3 分钟前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
布谷歌11 分钟前
面试题整理
java·开发语言
j4455661120 分钟前
C++中的职责链模式高级应用
开发语言·c++·算法
Hello World . .22 分钟前
数据结构:栈和队列
c语言·开发语言·数据结构·vim
jjjava2.027 分钟前
深入解析Set与Map的奥秘
java·开发语言
白宇横流学长32 分钟前
基于Java的火车票订票系统的设计与开发
java·开发语言
黎雁·泠崖33 分钟前
Java核心基础API学习总结:从Object到包装类的核心知识体系
java·开发语言·学习
m0_736919101 小时前
模板元编程性能分析
开发语言·c++·算法