我怀疑当 两个 值都 没有 赞助时就会出现问题。无论您用哪种方式返回1,即
x1.compare(x2) == 1x2.compare(x1) == 1
那是无效的。
我建议您更改此:
object1.getSponsored() && object2.getSponsored()
至
object1.getSponsored() == object2.getSponsored()
在两个地方。我 实际上 可能会将此提取出具有此签名的方法:
public static int compare(boolean x, boolean y)
然后这样称呼它:
public int compare(SRE object1, SRE object2) { return BooleanHelper.compare(object1.getSponsored(), object2.getSponsored());}这将使代码更清晰,IMO。



