用GXT的包,底层有这么一段代码:
public <V extends Comparable<V>> StoreSortInfo(final ValueProvider<? super M, V> property, SortDir direction) {
this.valueProvider = property;
this.direction = direction;
this.comparator = new Comparator<M>() {
public int compare(M o1, M o2) {
V v1 = property.getValue(o1);
V v2 = property.getValue(o2);
if ((v1 == null & v2 != null) || (v1 != null && v2 == null)) {
return v1 == null ? -1 : 1;
}
if (v1 == null & v2 == null) {
return 0;
}
return v1.compareTo(v2);
}
};
}请问大家if的判断是不是错了? public int compare的这个方法是不是只返回1?
public <V extends Comparable<V>> StoreSortInfo(final ValueProvider<? super M, V> property, SortDir direction) {
this.valueProvider = property;
this.direction = direction;
this.comparator = new Comparator<M>() {
public int compare(M o1, M o2) {
V v1 = property.getValue(o1);
V v2 = property.getValue(o2);
if ((v1 == null & v2 != null) || (v1 != null && v2 == null)) {
return v1 == null ? -1 : 1;
}
if (v1 == null & v2 == null) {
return 0;
}
return v1.compareTo(v2);
}
};
}请问大家if的判断是不是错了? public int compare的这个方法是不是只返回1?
v1和v2都为null,则返回 0,意思是相等。
v1为null,v2不为null,返回-1.
v1不为null,v2为null,返回 1。
都不是null的话,返回v1和v2比较结果。
==的优先级比& 和 &&都高
boolean值&结果与&&结果相同。
比较结果同一楼
boolean值&结果与&&结果相同。
比较结果同一楼
boolean值&结果与&&结果相同。
比较结果同一楼