public static int compareData()

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;
    }