public int compare(ZgTorderPlanbomEx arg0, ZgTorderPlanbomEx arg1) { String v1 = BeanUtils.getProperty(arg0, this.sortColumn); String v2 = BeanUtils.getProperty(arg1, this.sortColumn); int flag = 0; if (StringUtils.isNumeric(v1) && StringUtils.isNumeric(v2)) { int iv1 = Integer.parseInt(v1); int iv2 = Integer.parseInt(v2); flag = iv1 - iv2; } else { if (StringUtils.isBlank(v1) && !StringUtils.isBlank(v2)) { flag = 1; } else if (!StringUtils.isBlank(v1) && StringUtils.isBlank(v2)) { flag = -1; } else if (StringUtils.isBlank(v1) && StringUtils.isBlank(v2)) { flag = 0; } else { flag = v1.compareToIgnoreCase(v2); } } if (!this.isAsc) { flag = flag * -1; } return flag; }