例如,我看到了这样一个 Scala 表达式:
objX.methodY
似乎没有办法看到methodY
是从哪里来的,可能来自:
(1)objX
类,暂且称之为ClassX
(2)objX
的父类(super class)(ClassX
),暂且称它为SuperClassX
(3) 一个叫做ClassZ
的类,ClassZ
与objX
无关,但是有一个从ClassX<的隐式转换
到 ClassZ
。
那么methodY
的来源可能有3种可能,有没有人知道如何找到methodY
的定义位置?
换句话说,在Scala中,如何在运行时检查一个方法的信息(尤其是来自隐式转换的方法)?
最佳答案
有可能获得具有反射声明的方法的类。用你的名字:
objX.getClass().getMethod("methodY").getDeclaringClass();
关于java - 在 Scala/Java 中,如何检查方法的定义位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181910/