这段代码怎么去掉重复代码呢?想一小时了,领导让我优化,, 优化java条件语句 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 乍一看改成switch语句或者做几个相对小一些的方法(函数)来做判断既容易阅读和测试,还方便以后修改和维护 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));} 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));} 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)); } if(cz==1&pageNo!=1){query.filter("updateTime >", firstTime);}if(cz==2&pageNo!=pageModel.getBottomPageNo()){query.filter("updateTime <", lastTime);}既然这段代码什么情况都要执行,拿到最外层if前面执行一遍就行了 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)); } }目测没见到实现完整逻辑的代码,随便给一个参考 if (cz == 1 & pageNo != 1) { query.filter("updateTime >", firstTime);}if (cz == 2 & pageNo != pageModel.getBottomPageNo()) { query.filter("updateTime <", lastTime);}这段不能提前。当那3个 if 都不满足的情况下,按照逻辑,这一段是不会执行的。 为什么只有一个& 不是&& f (cz == 1 & pageNo != 1) { query.filter("updateTime >", firstTime);}if (cz == 2 & pageNo != pageModel.getBottomPageNo()) { query.filter("updateTime <", lastTime);}单独提出来 如何在每天00:00执行一个批处理 Path2D和线程控制问题 一个奇怪的写xml问题,标签不全 空格输出 [猫] N <= (3的K次方 - 1) /2 用JPEGImageDecoder出现的奇怪问题 请问 "建构函数私有以防止其它对象创建本类实例" 这句话应该怎么理解 \267\265\273\330\ 是什么编码格式??? 请问各位大虾:能不能把一个activeform加入到applet中,如果可以,在vj中怎么做? java获取数据库中的表名多了一个sys_config 求大神解惑 java调用C++的问题
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));}
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));
}
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));
}
query.filter("updateTime >", firstTime);
}
if(cz==2&pageNo!=pageModel.getBottomPageNo()){
query.filter("updateTime <", lastTime);
}
既然这段代码什么情况都要执行,拿到最外层if前面执行一遍就行了
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)); }
}
目测没见到实现完整逻辑的代码,随便给一个参考
query.filter("updateTime >", firstTime);
}
if (cz == 2 & pageNo != pageModel.getBottomPageNo()) {
query.filter("updateTime <", lastTime);
}这段不能提前。
当那3个 if 都不满足的情况下,按照逻辑,这一段是不会执行的。
query.filter("updateTime >", firstTime);
}
if (cz == 2 & pageNo != pageModel.getBottomPageNo()) {
query.filter("updateTime <", lastTime);
}单独提出来