package com.ql.util.express; import com.ql.util.express.instruction.OperateDataCacheManager; import com.ql.util.express.instruction.op.OperatorBase; /** * 操作符的基类 * @author xuannan * */ public abstract class Operator extends OperatorBase{ public OperateData executeInner(InstructionSetContext context, ArraySwap list) throws Exception{ Object[] parameters = new Object[list.length]; for(int i = 0;i * @throws Exception */ public static int compareData(Object op1,Object op2) throws Exception{ int compareResult = -1; if(op1 instanceof String){ compareResult = ((String)op1).compareTo(op2.toString()); }else if(op2 instanceof String){ compareResult = op1.toString().compareTo((String)op2); }else if(op1 instanceof Number && op2 instanceof Number){ //数字比较 compareResult = OperatorOfNumber.compareNumber((Number)op1, (Number)op2); } else if ((op1 instanceof Boolean) && (op2 instanceof Boolean)) { if (((Boolean)op1).booleanValue() ==((Boolean)op2).booleanValue()) compareResult =0; else compareResult =-1; } else throw new Exception(op1 + "和" + op2 +"不能执行compare 操作"); return compareResult; } }