我在String中有一段Java代码.
String javaCode = "if(polishScreenHeight >= 200 && " +
"polishScreenHeight <= 235 && polishScreenWidth >= 220) { }";
Run Code Online (Sandbox Code Playgroud)
是否可以将此Java String转换为Java语句并运行它?可能使用Java反射?
出于调试原因,我希望能够运行通过控制台输入的代码.例如:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true){
String str = br.readLine(); //This can return 'a = 5;','b = "Text";' or 'pckg.example.MyClass.run(5);'
if(str == null)
return;
runCode(str); //How would I do this?
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
将字符串转换为Java中的代码Java上的
动态代码执行
我有一个String包含:"for(int i=0 ; i<5 ; i++){System.out.println(\"*\");}"
我可以在Java中执行此String中的代码吗?
有没有人有任何使用循环的简单 JEXL 示例。我希望围绕一个简单的对象数组列表进行迭代以输出各种字符串值?
private String boundaries = "(x > 750) & (x < 900)";
if (boundaries) {
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在if子句中使用字符串作为变量,然后独立更改字符串,而无需编辑代码本身.示例的想法不起作用,我想知道它是否有错误或其他方式不使用字符串.
谢谢.
我有定期推送到数据库的 Java 代码(解释为什么它在数据库中太复杂了,这只会把焦点从主要问题上移开)。
在运行时我查询数据库。我可以执行从数据库中获取的代码吗?我只在代码中存储 main 方法的内容。运行数据库的服务器是 HTTP 服务器。
来自数据库的示例代码(仅供参考):
int i = 10;
int j = 2;
int k = i*j;
System.out.println("Result is " + k);
Run Code Online (Sandbox Code Playgroud)
预期输出:
Result is 20
Run Code Online (Sandbox Code Playgroud)