如何调用字符串形式的Java函数
我用的是SpringBoot 我有一个字符串形式的函数,我想通过传递params来执行该函数(这样它的行为就像普通的java函数一样) 例: 我想调用这个函数,输入:方法名称(“abc”,10) 输出:abc10 我在JAVA中是否有任何方法或库 我尝试过的事情: 1) 使用java.beans.Statement 提前感谢!:) 我为什么需要这个? 我在JSON文件中使用这个函数,在这里我将动态地使用这个函数。 JSON obj:如何调用字符串形式的Java函数,java,spring-boot,java-8,Java,Spring Boot,Java 8,我用的是SpringBoot 我有一个字符串形式的函数,我想通过传递params来执行该函数(这样它的行为就像普通的java函数一样) 例: 我想调用这个函数,输入:方法名称(“abc”,10) 输出:abc10 我在JAVA中是否有任何方法或库 我尝试过的事情: 1) 使用java.beans.Statement 提前感谢!:) 我为什么需要这个? 我在JSON文件中使用这个函数,在这里我将动态地使用这个函数。 JSON obj: { "1":{ "function" : "public
{
"1":{
"function" : "public void method_name(String name, int s) {\n" +
" System.out.println(name + s);\n" +
" } "
},
"2": {
"function" : another function
}
}
希望您理解这一点。这可以做到:查看
javax.tools.JavaCompiler
但是
您将在应用程序中创建一个巨大的安全漏洞。如果用户获得了对该json文件的访问权限,该怎么办?他们可以通过应用程序在服务器上运行任意代码
你真的需要问问自己,这是否是你真正想做的事情。也许有一个更简单的方法来实现你想要的?例如,查看策略设计模式。也许它已经可以做你想要的大部分事情了
而且,JavaCompiler
很难工作。除了JavaCompiler
本身之外,您还需要学习反射和类加载器以使其工作。所以这是另一个不走这条路的原因
不要这样做。你能解释一下你为什么要这样做吗?你在解决什么问题?如果你需要一个java代码解释器,你可以看看beanshell:你有没有找到更好的解释器?告诉我们为什么,你想做什么
{
"1":{
"function" : "public void method_name(String name, int s) {\n" +
" System.out.println(name + s);\n" +
" } "
},
"2": {
"function" : another function
}
}