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)

  }

}
相关推荐
Sandman6z5 小时前
uv python 卸载
开发语言·python·uv
Teacher.chenchong6 小时前
R语言空间分析实战:地理加权回归联合主成份与判别分析破解空间异质性难题
开发语言·回归·r语言
看到我,请让我去学习7 小时前
数据结构—排序(斐波那契数列,冒泡,选择,插入,快速,归并,图,广度优先算法)
c语言·开发语言·数据结构·后端
程序员Bears7 小时前
JSP与JSTL:EL表达式与MVC分层模式的完美结合
java·开发语言·mvc
wktomo8 小时前
GO语言学习(七)
开发语言·学习·golang
自我意识的多元宇宙8 小时前
Java List 接口知识点详解
java·开发语言
linux-hzh8 小时前
第二章 Java语言基础
java·开发语言
TE-茶叶蛋9 小时前
Web Workers 使用指南
开发语言·前端·javascript
五月茶9 小时前
JUC高并发编程
java·开发语言·jvm
红衣小蛇妖9 小时前
Python基础学习-Day30
开发语言·python·学习