您的方法可能是正确的,但是效率低下(不必要地调用equals)并且难以阅读。可以这样重写:
public int compare(Collection c1, Collection c2){ int n; n = c1.id.compareTo(c2.id); if (n != 0) return n; n = c1.entityType.compareTo(c2.entityType); if (n != 0) return n; n = c1.brandId.compareTo(c2.brandId); if (n != 0) return n; return c1.productId.compareTo(c2.productId);}
更好的方法是使用库方法将所有这些逻辑抽象掉,这样您就不必考虑它了。例如使用apache.commons.lang
CompareToBuilder
public int compare(Collection c1, Collection c2){ return new CompareToBuilder() .append(c1.id, c2.id) .append(c1.entityType, c2.entityType) .append(c1.brandId, c2.brandId) .append(c1.productId, c2.productId) .toComparison();}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)