开发过程中遇到的代码

超长的if内容

        if("110".equals(dataStatus)||"120".equals(dataStatus)){
            wcd=String.valueOf(Integer.parseInt(exeId)*50);
        }else if((dataStatus.startsWith("2")||dataStatus.startsWith("A")||dataStatus.startsWith("B")||dataStatus.startsWith("C")||dataStatus.startsWith("D"))&&"Y".equals(ifJxcs)){
            wcd=String.valueOf(Integer.parseInt(exeId)*20);
        }else if((dataStatus.startsWith("2")||dataStatus.startsWith("A")||dataStatus.startsWith("B")||dataStatus.startsWith("C")||dataStatus.startsWith("D"))&&"N".equals(ifJxcs)){
            wcd=String.valueOf(Integer.parseInt(exeId)*25);
        }else if("300".equals(dataStatus)){
            wcd=String.valueOf(Integer.parseInt(exeId)*100);
        }

像这样的if语句完全可以用更简单的方法来实现么,比如下面这个:

//声明在类内部
private static List<Char> STATUS_PREFIXES = { ‘2‘, ‘A‘, ‘B‘, ‘C‘, ‘D‘}

char p = dataStatus.charAt(0);
if(STATUS_PREFIXES.contains(p){ //这样短很多吧
  if("Y".equals(ifJxcs)){
      //TODO  equal
  }
  else{
      //TODO when not equal
  }
}

超长的if内容2

        if("init".equals(action)||"export".equals(action)||"toExcel".equals(action)
                ||"toExcelFull".equals(action)||"toPDF".equals(action)||"toPDFFull".equals(action)||"beforeSort".equals(action)
                ||"createInitData".equals(action)||"createDynamicData".equals(action)|| "ajaxDropAction".equals(action)
                ||"beforeFilter".equals(action)||"filterCondAdd".equals(action)||"filterCondDelete".equals(action)
                ||"filterCondInsert".equals(action)||"filterCondOk".equals(action)||"filterCondRefresh".equals(action)
                ||"filterCondSave".equals(action)||"filterSchemeAdd".equals(action)||"filterSchemeChanged".equals(action)
                ||"filterSchemeDelete".equals(action) ||"refreshList".equals(action)){
            return super.execute();
        }

这东西,简直不想看……

解决方案,同上一个,用List或者Map来存储一下,然后 contains就可以了!易读,美观!用MAP的话,性能还能提高一点点~

超占空间的赋值语句

    public void setYlcsVo(SqjwFwSyfwNew sqjwFwSyfwNew,SqjwDwSydwjbxx sqjwDwSydwjbxx,SqjwDwYlcs sqjwDwYlcs){
        //封装Vo实体
          sqjwYlcsVo.setDwdzDzbm(sqjwDwSydwjbxx.getDwdzDzbm());
          sqjwYlcsVo.setDwdzSsxqdm(sqjwDwSydwjbxx.getDwdzSsxqdm());
          sqjwYlcsVo.setDwdzQhnxxdz(sqjwDwSydwjbxx.getDwdzQhnxxdz());
          sqjwYlcsVo.setDwmc(sqjwDwSydwjbxx.getDwmc());
          sqjwYlcsVo.setSjmc(sqjwDwSydwjbxx.getSjmc());
          sqjwYlcsVo.setZddwbs(sqjwDwSydwjbxx.getZddwbs());
          sqjwYlcsVo.setSspcs(sqjwDwSydwjbxx.getSspcs());
          sqjwYlcsVo.setSszrq(sqjwDwSydwjbxx.getSszrq());
          sqjwYlcsVo.setJymjMjpfm(sqjwDwSydwjbxx.getJymjMjpfm());
          sqjwYlcsVo.setJyfwzy(sqjwDwSydwjbxx.getJyfwzy());
          sqjwYlcsVo.setYyzzh(sqjwDwSydwjbxx.getYyzzh());
          sqjwYlcsVo.setYyzzyxqQsrq(sqjwDwSydwjbxx.getYyzzyxqQsrq());
          sqjwYlcsVo.setSfjxcs(sqjwFwSyfwNew.getSfjxcs());
          sqjwYlcsVo.setJxcsfl(sqjwFwSyfwNew.getJxcsfl());           //...
    }

修改方法:
 BeanUtils.copyProperties(target, source);//使用工具类来完成对象的属性copy

时间: 2024-10-06 19:11:06

开发过程中遇到的代码的相关文章

iOS开发过程中,是用Storyboard/xib做界面,还是用代码来写界面,还是混合使用

以下是个人观点,非喜勿喷 关于iOS 开发过程中,是用Sb/xib 做界面 还是代码写界面,一直是讨论不断 各自成帮结派, 拖拉派.代码派.中间派 1. 拖拉派 ,Storyboard/xib 使用者, 像是海贼王里的能力者,开发快.Auto Layout .结构清晰,直观,一目了然 (个人觉得,小项目如此,超过10个界面以上,界面关系在复杂的话,看起来真是一团糟),能力者是有缺点的不会游泳, 同样Storyboard/xib 同样有它的缺点:(以下摘自) a). 所有的ViewControll

代码开发过程中对日志的使用总结

在日常开发过程中,日志是代码的必要组成部分,一个好的代码也必然有一个好的日志输出,优秀的日志不仅可以快速帮助我们分析定位问题还可以在对日志的数据挖掘中产生很大的威力. 1.java在发生异常时可以打印它的堆栈信息以帮助调试,但是java的异常也有下列问题: 1)java出现异常时只能展示静态的调用堆栈信息,对应异常之前的调用参数则无法进行展示,也就是只知道哪里发生了异常,而不知道是哪些数据导致了异常: 2)java的异常堆栈通常是直接定位到某个文件的某一行,在发生异常时,如果不看代码都不知道异常

C语言开发过程中目标代码文件、可执行文件和库

一.C程序开发的一般流程 1:定义程序的目标,明确程序的功能,明确程序中需要哪些信息.计算和控制,明确程序中应该报告什么信息,不会设计到具体的计算机语言,对于问题的描述一般用的是术语: 2:设计程序,考虑如何通过程序实现程序的目标,具体一点说,需要考虑的可以有用户界面的设计.程序的组织.目标用户的确定以及程序开发时间计划,除了这些,好需要确定是在程序中(也有可能是在辅助文件中)数据的表示形式以及数据的处理方法.这个阶段,不会用到具体的代码.问题的描述用的是一般术语,但是不排除某些决策会和具体的语

软件开发过程中的审查 (Review)

http://blog.csdn.net/horkychen/article/details/5035769 软件开发过程中的审查 (Review) 希望别人做些什么->定义出流程 希望别人做出正确的结果->定义出审查制度 软件开发项目中包括很多的审查动作,贯穿于整个开发过程.个人认为审查主要有以下目的: 1.尽早排查出潜在的问题(Potential Risk/Issue) 经过其他人的参与,以不同的视角提出不同的看法,会有类似头脑风暴的效果,集思广议来查找工程师未能注意的问题. 2.保持良好

在带(继承)TextView的控件中,在代码中动态更改TextView的文字颜色

今天由于公司项目需求,须要实现一种类似tab的选项卡,当时直接想到的就是使用RadioGroup和RadioButton来实现. 这种方法全然没问题.可是在后来的开发过程中,却遇到了一些困扰非常久的小困难.大概需求是:在代码中.动态的获取tab的个数,然后初始化RadioGroup,每个tab相应一个RadioButton,即加入一个tab就要向RadioGroup中add一个RadioButton,然后在button选中时要更改文字颜色.由于是动态加入,所以无法在xml中配置了RadioBut

软件开发过程中如何避免争吵?

软件开发过程中,对一个问题有不同意见是很正常的,不同思想的碰撞可以带来进步,但是如果沟通不当,引发争吵,从而延误项目开发进度,就会得不偿失了. 要做到避免争吵,首先得自我反思,自己是不是哪里做得不对,问题没考虑清楚.问题还没明白就去和别人争,就是你的不对了. 其次,要站在别人的角度先想一想问题.是不是PM有难言之隐,公司的压力过大,不能采纳我的建议? 设计师看问题的角度是不是和我不一样?我的代码编写是否规范,有没有给复审测试人员带来麻烦?项目有没有充分考虑并达到用户的需求?在和别人争论前,必须充

软件开发过程中要主要的问题

结合软件开发生命周期,软件开发过程中应注意的问题如下(个人愚见) 1)明确项目概况,即将项目定位,要结合需求和技术实现,对项目进行准确定位,制定合理的项目开发计划. 2)面对需求变化,需求变化是软件开发过程经常碰到的问题也是致命的问题,排除客户的问题,需求分析要做的足够好,需求分析做好后,最好要客户确认签字. 3)模块划分,把软件系统按照任务需求或者数据模型进行模块划分,提高系统开发进度. 4)编码规范,项目编写代码过程中要有详细的编码规范,如合理的程序文件结构(每个程序文件应由标题.内容.附加

node.js项目开发问题集锦(不定期更新,随时把开发过程中遇到的问题加上)

1.用express开发站点时,怎么定义通用的头部和尾部 方案1:用类似asp时代的include添加,如ejs模板: <% include ../header.ejs %> <h1 class="page-header"> 这里是内容. 注:..表示header.ejs在上一级目录,ejs扩展名可以去掉,直接写:include ../header </h1> <% include ../footer %> 方案2:用类似于MVC的lay

关于web前端开发过程中SEO优化的注意点

SEO优化通俗点说就是为了让网站在各大搜索引擎中更容易的被搜到,即提高搜索排行,从而提高网站流量的一个技术手段 在写web页面的时候,为了让网络爬虫更容易的搜索到页面,需要注意几个点: html语义化 刚接触web前端开发的时候很奇怪,既然html标签可以通过css进行更改它的内置属性,为什么还有这么多的标签存在 <div>,<h1>,<span>,<strong>.... 而现在,随着对前端的不断深入,才逐渐明白它的用处 语义化的html可以让开发者更容易