评估像Java代码一样的字符串

时间:2013-12-13 05:54:15

标签: java

在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文件中编写表达式。

3 个答案:

答案 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;
        }
    }
}