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)

  }

}
相关推荐
渣渣盟几秒前
Flink实现TopN URL访问量统计
大数据·flink·scala
小二·1 分钟前
Go 语言系统编程与云原生开发实战(第39篇)
开发语言·云原生·golang
笨笨马甲3 分钟前
Qt的界面渲染体系
开发语言·qt
05大叔4 分钟前
Mybatis-Plus
java·开发语言·mybatis
LawrenceLan5 分钟前
38.Flutter 零基础入门(三十八):网络请求实战 http、dio —— 获取列表与刷新 UI
开发语言·前端·flutter·dart
HalvmånEver7 分钟前
6.高并发内存池的内存释放全流程
开发语言·c++·项目学习··高并发内存池
OxyTheCrack8 分钟前
【C++】简述Observer观察者设计模式附样例(C++实现)
开发语言·c++·笔记·设计模式
耶叶8 分钟前
kotlin的修饰符
android·开发语言·kotlin
毕设源码-朱学姐9 分钟前
【开题答辩全过程】以 基于springBoot微服务架构的老年人社交系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Vic1010110 分钟前
java的分布式协议
java·开发语言·分布式