在Java中可以"反思地"访问方法的源代码吗?

ger*_*rra 11 java reflection

我担心答案是肯定的,但也许你们其中一个让我感到惊讶.

谢谢.

编辑1: 我知道这个问题没有多大意义,但我认为这一点已被理解,可悲的是,答案是否定的.无论如何,我改变了问题的标题,在"反思性"一词中添加了引号,我将尽力更好地解释我的意图以防万一.

我有一个类型的实例,它是某种抽象类型的子类,它有一些已知的方法.我希望在运行时获得一个String,其中包含实例类型中此类方法之一的实际实现的源代码.

我认为值得指出的是,实例的实际类型可能是一个非常内在的类......而且源代码的"反编译"版本也足够好了.我想要获取源的方法,大多数时候,只有一行....

谢谢.

Atm*_*ons 5

正如其他人指出的那样:没有.

您可以像JVM一样访问类的对象,方法等.这是唯一可能的,因为每个类在编译时都存储有关其自身及其成员的信息.

如果我不得不猜测,这发生在对象中,即继承树中的根对象.您可以使用反编译器反编译该类文件并使用该文件进行检查.但是您无法像String或类似的东西那样访问源代码.

想一想:如果你有为JVM编译的scala代码,你也无法获得scala代码.你不能得到java代码.

你有什么特别的理由要这么做吗?可能有任何其他方式可以尝试实现您的目标,无论它可能是什么?

问候