这段代码怎么去掉重复代码呢?想一小时了,领导让我优化,, 优化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);}单独提出来 项目启动时报错:java.lang.ClassNotFoundException: org.apache.log4j.LogManager 正则表达式如何替换匹配的一部分字符串 急 跪求正则表达式 如何操作日志?? ZipInputStream怎么能转换为FileInputStream呢? 作业题目求代码! 跪求 用Java实现类似QQ弹出的ToolTip框的功能 关于两个Vector模拟二维数组的行列转置问题MatrixChange,急着,给100分 此题非圣贤不会也 请教SQLCipher在Windows下如何通过Java连接创建数据库? 求大神解惑 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);
}单独提出来