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)

  }

}
相关推荐
浅念-1 分钟前
C++ 继承
开发语言·c++·经验分享·笔记·学习·算法·继承
snakeshe101013 分钟前
Java集合框架深度解析:核心类库与实战应用
后端
大鹏198817 分钟前
告别 XML 与字符串拼接:dbVisitor 如何以“多范式融合”重塑 Java DAL 层
后端
你有医保你先上19 分钟前
go-es:一个优雅的 Elasticsearch Go 客户端
后端·elasticsearch
新缸中之脑26 分钟前
Sonnet 4.6 vs Opus 4.6
java·开发语言
曹牧28 分钟前
Java:@RequestBody 和 @RequestParam混合使用
java·开发语言
思茂信息1 小时前
基于CST 3D Combined功能的以太网口RE仿真
开发语言·javascript·单片机·嵌入式硬件·matlab·3d
番茄去哪了1 小时前
Python基础入门(二)
linux·服务器·开发语言·python
柠檬味的Cat1 小时前
零基础搭建WordPress网站完整流程
后端·php
代龙涛1 小时前
wordpress块主题
开发语言·后端·php