有没有办法让字符串成为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中的可能吗? 谢谢。
答案 0 :(得分:0)
您必须实现自己的解析器,因为需要编译Java代码。没有evaluate()
方法,例如PHP或其他脚本语言提供它。
答案 1 :(得分:0)
if
语句中的内容应评估为boolean
,换句话说评估为true
或false
。
您希望能够以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
}
}