java - 在 Scala/Java 中,如何检查方法的定义位置?

标签 java scala reflection inspect

例如,我看到了这样一个 Scala 表达式:

objX.methodY

似乎没有办法看到methodY是从哪里来的,可能来自:

(1)objX类,暂且称之为ClassX

(2)objX的父类(super class)(ClassX),暂且称它为SuperClassX

(3) 一个叫做ClassZ的类,ClassZobjX无关,但是有一个从ClassX<的隐式转换ClassZ

那么methodY的来源可能有3种可能,有没有人知道如何找到methodY的定义位置?

换句话说,在Scala中,如何在运行时检查一个方法的信息(尤其是来自隐式转换的方法)?

最佳答案

有可能获得具有反射声明的方法的类。用你的名字:

objX.getClass().getMethod("methodY").getDeclaringClass();

关于java - 在 Scala/Java 中,如何检查方法的定义位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181910/

相关文章:

Scala akka 输入 : how to get ActorRef to Actor from it's instance and send message itself?

java - 如何获取具有特定类型参数的泛型类的 `Class<T>` 对象的引用?

c# - Type.IsSubclassOf() 不适用于 AppDomains?

Java 100万个1x3数组的索引数组 - 内存和效率

java - JpaRepository findAll 返回空列表

java - 无法在 JavaFX 中加载 Controller

java - CompiledScript 的多个实例

java - 如何拆分字符串序列并将每个元素转换为 double

Scala 闭包上下文

.net - 如何通过反射获取某个 ValueType 的 MinValue/MaxValue?