在过去,当Invocation(一个实验性实用程序)是标准库的一部分时,可以"动态"调用方法,如下所示:
"Hello!" o 'substring(0, 4) // to get Any back
"Hello!" oo 'substring(0, 4) // for an automatic unsafe cast to expected type
Run Code Online (Sandbox Code Playgroud)
如何使用新的Scala反射API执行此操作?
我有这样的课:
trait ThirdParty { def invoke = println("right") }
trait WeatherIcon { def invoke = println("wrong") }
class MyClass {
object objA extends ThirdParty
object objB extends WeatherIcon
}
Run Code Online (Sandbox Code Playgroud)
如何使用Scala反射API迭代包含的对象并调用方法(如果它是ThirdParty类的实例)?