in src/main/java/com/ql/util/express/Operator.java [87:123]
public static int compareData(Object op1, Object op2) throws Exception {
if (op1 == op2) {
return 0;
}
int compareResult;
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 Character || op2 instanceof Character) {
if (op1 instanceof Character && op2 instanceof Character) {
compareResult = ((Character)op1).compareTo((Character)op2);
} else if (op1 instanceof Number) {
compareResult = OperatorOfNumber.compareNumber((Number)op1, (int)(Character)op2);
} else if (op2 instanceof Number) {
compareResult = OperatorOfNumber.compareNumber((int)(Character)op1, (Number)op2);
} else {
throw new QLException(op1 + "和" + op2 + "不能执行compare 操作");
}
} 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 if ((op1 instanceof Date) && (op2 instanceof Date)) {
compareResult = ((Date)op1).compareTo((Date)op2);
} else {
throw new QLException(op1 + "和" + op2 + "不能执行compare 操作");
}
return compareResult;
}