如何将String作为java中的条件

时间:2015-02-05 07:40:25

标签: java

有没有办法让字符串成为java中的条件。

样品如下所示

class A {
    public static void main(String args[]) {

        B b = new B(10, 20);
        b.setCondition("val1>val2");
    }
}

class B {
    int val1 = 0;
    int val2 = 0;

    public B(int v1, int v2) {
        val1 = v1;
        val2 = v2;
    }

    public void setCondition(String condition){
   //the string should be evaluated as conditon like below.
     if(condition) ->  if(val1>val2)

   }
}

这是java中的可能吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

您必须实现自己的解析器,因为需要编译Java代码。没有evaluate()方法,例如PHP或其他脚本语言提供它。

答案 1 :(得分:0)

if语句中的内容应评估为boolean,换句话说评估为truefalse

您希望能够以String形式传递任意条件,然后您必须为String定义解析器。

如果你真的需要这样做,我对记录有点怀疑,可以考虑定义一个以String作为构造函数参数的类,两个要计算的整数值并返回boolean。类似的东西:

class Evaluator{
  public Evaluator(String condition){
    // parse condition
  }
  public boolean evaluate(int v1, int v2){ 
    // return true if condition is satisfied, false otherwise
  }
}