Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用java反射API从.class文件生成.java文件?_Java_Reflection - Fatal编程技术网

是否可以使用java反射API从.class文件生成.java文件?

是否可以使用java反射API从.class文件生成.java文件?,java,reflection,Java,Reflection,我的java作业中有一个问题,要求我使用反射API从.class文件生成.java源文件 我试图弄清楚它是要求我使用反射实例化该类的一个实例,还是实际生成一个源文件,因为根据我的阅读,使用反射生成一个.java文件是不可能的 任何有更多经验的人都可以帮我澄清这一点,这将是非常棒的 您的家庭作业可能会要求使用反射创建类的实例 使用反射从.class创建.java文件是不可能的 通过反射,您可以访问类对象(而不是文件)并读取或调用方法、字段和构造函数 特别是对于反射,您无法访问方法、构造函数或初始值

我的java作业中有一个问题,要求我使用反射API从.class文件生成.java源文件

我试图弄清楚它是要求我使用反射实例化该类的一个实例,还是实际生成一个源文件,因为根据我的阅读,使用反射生成一个.java文件是不可能的


任何有更多经验的人都可以帮我澄清这一点,这将是非常棒的

您的家庭作业可能会要求使用反射创建类的实例

使用反射从.class创建.java文件是不可能的

通过反射,您可以访问类对象(而不是文件)并读取或调用方法、字段和构造函数


特别是对于反射,您无法访问方法、构造函数或初始值设定项块中的代码。

您是对的:反射API不是用于此目的的。您可以编写代码来使用反射API来生成类的“存根”,例如类声明、方法声明(等等)——但您不应该期望它自己生成这些,也不应该让反编译方法/构造函数实现的源代码变得容易


我的猜测是,“生成声明”是你被要求做的全部事情——尽管你应该与分配给你作业的人核实这一点。

你可能应该问问你的讲师。然而,“从.class生成.java文件”对我来说听起来像是反编译。您可以使用JD-GUI反编译器-简单且用户友好。