解决方案 »

  1.   

    乍一看改成switch语句或者做几个相对小一些的方法(函数)来做判断既容易阅读和测试,还方便以后修改和维护
      

  2.   

    if(uploadId!=0){if(cz==1&pageNo!=1){
    query.filter("updateTime >", firstTime);
    }
    if(cz==2&pageNo!=pageModel.getBottomPageNo()){
    query.filter("updateTime <", lastTime);
    }
    find(query.field("uploadId").equal(uploadId));
    }
    if(vid!=0){if(cz==1&pageNo!=1){
    query.filter("updateTime >", firstTime);
    }
    if(cz==2&pageNo!=pageModel.getBottomPageNo()){
    query.filter("updateTime <", lastTime);
    }
    find(query.field("vid").equal(vid));}
    if(fileName!=null&&fileName!=""){
    if(cz==1&pageNo!=1){
    query.filter("updateTime >", firstTime);
    }
    if(cz==2&pageNo!=pageModel.getBottomPageNo()){
    query.filter("updateTime <", lastTime);
    }
    find(query.field("fileName").equal(fileName));} 
      

  3.   


    if(cz==1&pageNo!=1){
    query.filter("updateTime >", firstTime);
    }
    if(cz==2&pageNo!=pageModel.getBottomPageNo()){
    query.filter("updateTime <", lastTime);}
    if(uploadId!=0){
    find(query.field("uploadId").equal(uploadId));
    }elseif(vid!=0){
    find(query.field("vid").equal(vid));
    }elseif(fileName!=null&&!fileName.equals("")){
    find(query.field("fileName").equal(fileName));
    }
      

  4.   

    if (cz == 1 & pageNo != 1) {
    query.filter("updateTime >", firstTime);
    }
    if (cz == 2 & pageNo != pageModel.getBottomPageNo()) {
    query.filter("updateTime <", lastTime);
    }
    if (uploadId != 0) {
    find(query.field("uploadId").equal(uploadId));
    }
    if (vid != 0) {
    find(query.field("vid").equal(vid));
    }
    if (fileName != null && fileName.length()>0) {
    find(query.field("fileName").equal(fileName));
    }
      

  5.   

    if(cz==1&pageNo!=1){
    query.filter("updateTime >", firstTime);
    }
    if(cz==2&pageNo!=pageModel.getBottomPageNo()){
    query.filter("updateTime <", lastTime);
    }
    既然这段代码什么情况都要执行,拿到最外层if前面执行一遍就行了
      

  6.   

      if (uploadId != 0)
        fun(cz, pageNo, "uploadId", uploadId);
      if (vid != 0)
        fun(cz, pageNo, "vid", vid);
      if (fileName != 0)
        fun(cz, pageNo, "fileName", fileName);
      
      void fun(int cz, int pageNo, String name, Object attribute) {
        if(fileName!=null&&fileName!=""){
          if(cz==1&pageNo!=1){
            query.filter("updateTime >", firstTime);
          }
          if(cz==2&pageNo!=pageModel.getBottomPageNo()){
            query.filter("updateTime <", lastTime);
          }
          find(query.field(name).equal(attribute));    }
      }
    目测没见到实现完整逻辑的代码,随便给一个参考
      

  7.   

    if (cz == 1 & pageNo != 1) {
        query.filter("updateTime >", firstTime);
    }
    if (cz == 2 & pageNo != pageModel.getBottomPageNo()) {
        query.filter("updateTime <", lastTime);
    }这段不能提前。
    当那3个 if 都不满足的情况下,按照逻辑,这一段是不会执行的。
      

  8.   

    为什么只有一个& 不是&&
      

  9.   

    f (cz == 1 & pageNo != 1) {
        query.filter("updateTime >", firstTime);
    }
    if (cz == 2 & pageNo != pageModel.getBottomPageNo()) {
        query.filter("updateTime <", lastTime);
    }单独提出来