当前位置:编程学习 > JAVA >>

底层的一段代码,好像是错了,请大家帮忙看一下

用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? --------------------编程问答-------------------- 应该没错,意思是:
v1和v2都为null,则返回 0,意思是相等。
v1为null,v2不为null,返回-1.
v1不为null,v2为null,返回 1。
都不是null的话,返回v1和v2比较结果。 --------------------编程问答-------------------- 没错
==的优先级比& 和 &&都高 --------------------编程问答-------------------- 还会!!! --------------------编程问答-------------------- 没错,写个测试程序便知 --------------------编程问答--------------------
引用 1 楼 nmyangym 的回复:
应该没错,意思是:
v1和v2都为null,则返回 0,意思是相等。
v1为null,v2不为null,返回-1.
v1不为null,v2为null,返回 1。
都不是null的话,返回v1和v2比较结果。


正解! --------------------编程问答-------------------- ==优先级高于&和&&;
boolean值&结果与&&结果相同。
比较结果同一楼 --------------------编程问答-------------------- ==优先级高于&和&&;
boolean值&结果与&&结果相同。
比较结果同一楼 --------------------编程问答-------------------- ==优先级高于&和&&;
boolean值&结果与&&结果相同。
比较结果同一楼 --------------------编程问答-------------------- 木有错~~~~~ --------------------编程问答-------------------- 测试一下就知道了
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,