本文介绍了如何使用反射调用 Scala 对象方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
比如说,我有以下几点:
say, I have the following:
trait SomeTrait {
def someMethod: String;
}
object SomeObject extends SomeTrait {
def someMethod = "something";
}
我想使用反射调用someMethod",因为我将对象名称作为字符串.类似的东西:
I would like to call "someMethod" using reflection as I have the object name as a String.Something like:
val objectName = "SomeObject"
val someTrait:SomeTrait = ???.asInstanceOf[SomeTrait]
someTrait.someMethod
或类似的东西.
谢谢
推荐答案
def companion[T](name : String)(implicit man: Manifest[T]) : T =
Class.forName(name + "$").getField("MODULE$").get(man.erasure).asInstanceOf[T]
val result = companion[SomeTrait]("SomeObject").someMethod
这篇关于如何使用反射调用 Scala 对象方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!