1700474023
代码清单27-1 抽象表达式类
1700474024
1700474025
public abstract class Expression{
1700474026
1700474027
//解析公式和数值,其中var中的key值是是公式中的参数,value值是具体的数字
1700474028
1700474029
public abstract int interpreter(HashMap<String,Integer>var);
1700474030
1700474031
}
1700474032
1700474033
抽象类非常简单,仅一个方法interpreter负责对传递进来的参数和值进行解析和匹配,其中输入参数为HashMap类型,key值为模型中的参数,如a、b、c等,value为运算时取得的具体数字。
1700474034
1700474035
变量解析器如代码清单27-2所示。
1700474036
1700474037
代码清单27-2 变量解析器
1700474038
1700474039
public class VarExpression extends Expression{
1700474040
1700474041
private String key;
1700474042
1700474043
public VarExpression(String_key){
1700474044
1700474045
this.key=_key;
1700474046
1700474047
}
1700474048
1700474049
//从map中取之
1700474050
1700474051
public int interpreter(HashMap<String,Integer>var){
1700474052
1700474053
return var.get(this.key);
1700474054
1700474055
}
1700474056
1700474057
}
1700474058
1700474059
抽象运算符号解析器如代码清单27-3所示。
1700474060
1700474061
代码清单27-3 抽象运算符号解析器
1700474062
1700474063
public abstract class SymbolExpression extends Expression{
1700474064
1700474065
protected Expression left;
1700474066
1700474067
protected Expression right;
1700474068
1700474069
//所有的解析公式都应只关心自己左右两个表达式的结果
1700474070
1700474071
public SymbolExpression(Expression_left,Expression_right){
1700474072
[
上一页 ]
[ :1.700474023e+09 ]
[
下一页 ]