gpt4 book ai didi

java - 在 Java 中可以访问方法 "reflectively"的源代码吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:55:23 25 4
gpt4 key购买 nike

恐怕答案是否定的,但也许你们中的一个让我感到惊讶。

谢谢。

编辑 1:我知道这个问题没有多大意义,但我认为这一点已被理解,遗憾的是,答案是否定的。无论如何,我更改了问题的标题,为“反射(reflection)”一词添加了引号,为了以防万一,我会尝试更好地解释我的意图。

我有一个类型的实例,它是具有一些已知方法的某个抽象类型的子类。我想在运行时获得一个字符串,其中包含实例类型中此类方法之一的实际实现的源代码。

我认为值得指出的是实例的实际类型可能是一个匿名内部类....另外,源代码的“反编译”版本就足够了。我想获取源码的方法,大多数时候只有一行....

谢谢。

最佳答案

正如其他人所指出的:不。

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

如果非要我猜的话,这发生在 Object 中,即继承树中的根对象。您可以使用反编译器反编译类文件并将其用于检查。但是您不能像 String 或任何类似的东西一样访问源代码。

想一想:如果你有为 JVM 编译的 scala 代码,你也无法取回 scala 代码。而且您无法获得 Java 代码。

您想这样做有什么特殊原因吗?您是否可以通过任何其他方式尝试实现您的目标,无论它是什么?

问候

关于java - 在 Java 中可以访问方法 "reflectively"的源代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com