有没有办法在Java中执行类似下面的示例?
public class HandleCode
{
public static void main(String[] args)
{
String someCode = "System.out.println(aNumber);";
int aNumber = 123;
pasteCode(someCode); // Here we somehow tell Java to paste in at pre-compile time the text that is stored in someCode and treat it as source-code text.
}
private static void pasteCode(String code)
{
// Method code here
}
}
此假设代码将打印:123
是否有这样的方法来编写pasteCode
方法在Java中执行此操作?由于一些预编译命令,我知道在C ++中可以做到这一点,但我想知道如何在Java中完成。
答案 0 :(得分:1)
您可以使用ScriptEngine(Manager)来获取JavaScript引擎来执行此操作。但是在java中,一旦编译,你的字符串的标签“someCode”就不再存在。
此链接说明了如何操作:
https://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/