|
|
@ -27,7 +27,11 @@ public enum OnlineWidgetSortType implements SortType<OnlineShareWidget> { |
|
|
|
public int compare(OnlineShareWidget o1, OnlineShareWidget o2) { |
|
|
|
public int compare(OnlineShareWidget o1, OnlineShareWidget o2) { |
|
|
|
double t1 = getSortValue(o1, parameterMap); |
|
|
|
double t1 = getSortValue(o1, parameterMap); |
|
|
|
double t2 = getSortValue(o2, parameterMap); |
|
|
|
double t2 = getSortValue(o2, parameterMap); |
|
|
|
return ComparatorUtils.compareCommonType(t2, t1); |
|
|
|
// Comparator中比较double/float相等时,不允许误差. 否则会违背 "若x = y , y = z, 则x = z"的约定。
|
|
|
|
|
|
|
|
// 因为允许误差的情况下,x和y间的误差在允许范围内,被判定相等,y和z间的误差在允许范围内,被判定相等,
|
|
|
|
|
|
|
|
// 但x和z间的误差可能超出允许范围,从而不相等,因此会违背上述约定。
|
|
|
|
|
|
|
|
// 产生IllegalArgumentException: Comparison method violates its general contract!
|
|
|
|
|
|
|
|
return Double.compare(t2, t1); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|