我想知道是否有办法将动态更改代码的代码导入主编码。像这样:
Main:
int x;
(insert input.java)
input.java的内容:
x = 2;
我可以将input.java
内的代码导入主代码吗?
答案 0 :(得分:6)
Java在源编译时没有包含指令。
它也没有用于在运行时评估新Java源代码的评估。
将新Java代码添加到正在运行的Java VM中的唯一真正方法是通过类加载。
然而,自从javax.script(Java 6)出现以来,充分支持的运行时(例如来自Java 8的Nashorn Javascript实现)可以导入并评估一些回调到Java API的脚本代码。这是一个巨大的主题和太大了,无法在这里深入探讨。
答案 1 :(得分:0)
Java没有等效的eval
,或者任何其他能够在运行时评估代码的构造。它完全能够解析外部数据(如XML),并对其发现的内容采取措施。它还可以启动和捕获外部进程的输出,这很可能是动态生成的代码。此过程的详细信息取决于您的操作系统。