在Java中我有一个方法:
private boolean testFunction(int x){
// codes goes here..
}
现在我有一个用文件写的表达式:
if(testFunction(10)){ return "ok"; }else{ return null;}
我将它存储在java程序中的String
变量中,并希望像执行Java代码一样执行它:
if(testFunction(10)){ return "ok"; }else{ return null;}`
有可能吗?
问题是我有一个Web应用程序,其中有10种不同类型的表单具有不同类型的字段,即在某种形式X,Y,Z在那里,X,Y是必需的....在某种形式A ,B,C就在那里,C只需要这样。
因此,我不想为每个表单编写验证代码,而是想在XML文件中编写表达式,并且在评估时,这些表达式将由单个java方法执行并返回一些值。因此,通过这种方式,我只需要在XML文件中编写表达式。
答案 0 :(得分:0)
没有。 Java是一种编译语言,它不被解释。
有一些在Java中动态生成字节码的方法,但是它们参与度很高,并且不能接近eval(String code)
的概念
答案 1 :(得分:0)
如果你想要对表单条目进行动态验证,我建议使用RegExp表达式,可以在运行时对表单输入进行评估和匹配。
不幸的是,你的OP对你实际想要达到的目标有点模糊。
为了帮助您入门:RegExp Pattern class
答案 2 :(得分:-1)
如果你看起来像
public class Test {
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.getReturnValue(10));
System.out.println(test.getReturnValue(11));
}
private boolean testFunction(int x){
if(x == 10)
return true;
else
return false;
}
private Object getReturnValue(int x){
if(testFunction(x)){
return "ok";
}else{
return null;
}
}
}