我担心答案是肯定的,但也许你们其中一个让我感到惊讶.
谢谢.
编辑1: 我知道这个问题没有多大意义,但我认为这一点已被理解,可悲的是,答案是否定的.无论如何,我改变了问题的标题,在"反思性"一词中添加了引号,我将尽力更好地解释我的意图以防万一.
我有一个类型的实例,它是某种抽象类型的子类,它有一些已知的方法.我希望在运行时获得一个String,其中包含实例类型中此类方法之一的实际实现的源代码.
我认为值得指出的是,实例的实际类型可能是一个非常内在的类......而且源代码的"反编译"版本也足够好了.我想要获取源的方法,大多数时候,只有一行....
谢谢.
正如其他人指出的那样:没有.
您可以像JVM一样访问类的对象,方法等.这是唯一可能的,因为每个类在编译时都存储有关其自身及其成员的信息.
如果我不得不猜测,这发生在对象中,即继承树中的根对象.您可以使用反编译器反编译该类文件并使用该文件进行检查.但是您无法像String或类似的东西那样访问源代码.
想一想:如果你有为JVM编译的scala代码,你也无法获得scala代码.你不能得到java代码.
你有什么特别的理由要这么做吗?可能有任何其他方式可以尝试实现您的目标,无论它可能是什么?
问候
| 归档时间: |
|
| 查看次数: |
5105 次 |
| 最近记录: |