怎么写出美观, 简洁的代码?

标签: 代码优化  代码整洁  代码美观  实体复制

 

 

怎么写出美观, 简洁的代码?

 

一,前言:

      今天和大家交流的是,怎么让代码能变得更加简洁,美观, 在很多赋值,返回实体中,需要赋值到实体时,见到过很多如下情况, 怎么进行优化呢?

 

代码一:

private static RegistTime transToRegistTime(RegistTimeDtodto) {
    RegistTime registTime = new RegistTime();
    registTime.setId(dto.getId());
    registTime.setYear(dto.getYear());
   registTime.setTermId(dto.getTermId());
   registTime.setGradeTypeId(dto.getGradeTypeId());
   registTime.setGradeId(dto.getGradeId());
   registTime.setSubjectSelect(dto.getSubjectIds());
    registTime.setSubjectNames(dto.getSubjectNames());
   registTime.setClassLevelId(dto.getClasslevelId());
   registTime.setContinueDate(dto.getContinueDate());
   registTime.setEmployeeDate(dto.getEmployeeDate());
   registTime.setAppDate(dto.getAppOldStudentDate());
    registTime.setAppPrepareDate(dto.getAppPrepareDate());
   registTime.setOldStudentDate(dto.getOldStudentDate());
   registTime.setNewStudentDate(dto.getNewStudentDate());
   registTime.setVirtualBeginDate(dto.getVirtualBeginDate());
    registTime.setVirtualEndDate(dto.getVirtualEndDate());
   registTime.setDeleted(dto.getDeleted());
   registTime.setCreaterId(dto.getCreator());
   registTime.setCreateDate(dto.getCreateTime());
   registTime.setModifyId(dto.getModifier());
    registTime.setModifyDate(dto.getModifyTime());
   registTime.setOnlineClassNum(dto.getOnlineClassNum());
   registTime.setOnLineEndDate(dto.getOnlineEndDate());
   registTime.setEndEmployeeDate(dto.getEndEmployeeDate());
   registTime.setEmployeeDate(dto.getEmployeeDate());
    registTime.setEmployeeClassNum(dto.getEmployeeClassNum());
   registTime.setClassType(dto.getClassType());

    return registTime;
}



代码二:

private static RegistTimeImportLogtransToImportLog(RegistTimeImportLogDto dto) {
    RegistTimeImportLog importLog = new RegistTimeImportLog();
    importLog.setId(dto.getId());
    importLog.setYear(dto.getYear());
   importLog.setTermName(dto.getTermName());
   importLog.setGradeName(dto.getGradeName());
   importLog.setSubjectName(dto.getSubjectNames());
    importLog.setClassLevelName(dto.getClasslevelName());
   importLog.setEmployeeDate(dto.getEmployeeDate());
   importLog.setContinueDate(dto.getContinueDate());
   importLog.setOldStudentDate(dto.getOldStudentDate());
    importLog.setNewStudentDate(dto.getNewStudentDate());
   importLog.setVirtualBeginDate(dto.getVirtualBeginDate());
   importLog.setVirtualEndDate(dto.getVirtualEndDate());
   importLog.setOnLineEndDate(dto.getOnlineEndDate());
   importLog.setEndEmployeeDate(dto.getEndEmployeeDate());
   importLog.setEmployeeClassNum(dto.getEmployeeClassNum());
   importLog.setOnlineClassNum(dto.getOnlineClassNum());
   importLog.setErrorReason(dto.getErrorReason());
   importLog.setCreaterId(dto.getCreator());
    importLog.setCreateDate(dto.getCreateTime());
   importLog.setAppDate(dto.getAppOldStudentDate());
   importLog.setAppPrepareDate(dto.getAppPrepareDate());
   importLog.setClassType(dto.getClassType() != null ?String.valueOf(dto.getClassType()) : null);
    return importLog;
}

 

二,问题:

 

     你写出这么长的代码或看到这么长的代码,有没有想过 spring 早就有相关的方案或硅谷早也有人遇到相同的问题,他们的解决方案吗?

 

三,解决方案:

       事实上答案是非常肯定的. 那怎么解决呢?

BeanUtils.copyProperties(), 两个参数是上面的条件资源和目标对象.

 

 

所以上面代代码一优化一下结果如下:

 

代码二优化后如下:

private static RegistTimeImportLogtransToImportLog(RegistTimeImportLogDto dto) {
    RegistTimeImportLog importLog = new RegistTimeImportLog();
    try {
        BeanUtils.copyProperties(dto,importLog);
    } catch (IllegalAccessExceptione) {
        e.printStackTrace();
    } catch (InvocationTargetExceptione) {
        e.printStackTrace();
    }

return importLog;

}


四,小结:

      相比之下, 看了什么感觉?是不是更改之后的方式非常的舒服,太对了, 您不用说了, 我已经知道您也是赞同优化之后的方案, 那就共同学习, 争取写出更高质量的代码,提升效率吧. 愿陪您快乐学习,终生进步.

 

 

 

版权声明:本文为u013067756原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013067756/article/details/80425570

智能推荐

Configuration, ConfigurationProperties和EnableConfigurationProperties用法

最近刚刚解决了个错误,突然又发现这个类在spring容器中找不到, 于是我就加一个 @Component的注解,哈哈直接启动成功,那我如果吧这个注解去掉,加上一个@Configuration的注解呢,哈哈还是可以的,毕竟里面已经有这个@Component的注解了。所以我就整理下Configuration,ConfigurationProperties,EnableConfigurationProp...

备战蓝桥杯--贪心算法刷题整理5

翻硬币(贪心算法) 看了一下网上的题解,感觉挺强,网友的做题思想值得借鉴,这里分享一下网友的链接,同时再分享一下自己的解题方案 链接:https://blog.csdn.net/qq_34594236/article/details/60326782 题目描述: 小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母...

部署高可用RabbitMQ

安装 准备工作 这里我们使用三个RabbitMQ节点: 开通端口(具体见官方文档): 安装ErLang和RabbitMQ Server 安装文档见:https://www.rabbitmq.com/install-rpm.html。 采用RPM包而不是Repo的安装命令如下(以下的版本号可根据实际情况修改): 安装管理插件 安装文档见:https://www.rabbitmq.com/manage...

Opencv常用代码总结

文章目录 读取显示图像 保存图片 查看图片信息 读取视频 截取部分图像数据 颜色通道提取、融合与保留 边界填充 数值计算 图像融合 图像阈值 图像平滑(降噪) 形态学-腐蚀操作 形态学-膨胀操作 开运算与闭运算 梯度运算 礼帽与黑帽 图像梯度 Sobel算子 Scharr算子 laplacian算子 Canny边缘检测 图像金字塔 高斯金字塔:向下采样(缩小) 高斯金字塔:向上采样(放大) 拉普拉...

Numpy实现LDA

LDA与PCA的区别如下表: LDA的原理如下: 代码实现如下,这里使用的a,b是Nx2的二维点集合,经过LDA后,二维的点变为一维。更高维度的也是可以做到的。函数里的dim是原始数据的维度,d是想要降到的维度。  初始的数据如下图,红色点和蓝色点代表不同的分类。 经过LDA后,投影的一维数值如下图所示。 可见LDA实现了降维,而且两种分类的间距较大,类内的散度较小。...

猜你喜欢

Java反射机制

相关类型:  java.lang.Class  java.lang.reflect.Constructor  java.lang.reflect.Field  java.lang.reflect.Method  java.lang.reflect.Modifier 作用:  1、反编译 .class –> .java&n...

Linux(Centos7)安装oracle12c

第一步:到oracle官网上下载oracle12c的镜像文件 第二步:添加用户和组 用普通用户登录后,打开命令行工具(terminal) 转到root用户 [vmtest@localhost ~]$ su root Password: 添加组 [root@localhost vmtest]# groupadd dba 添加用户 [root@localhost vmtest]# useradd or...

bootstrap中表格内容过长成省略号,鼠标悬停表格显示全部内容【页面标签中实现】

页面效果展示: 1. 先判断该对象是否存在,再使用freemarker的list语法进行遍历 2. <#if> 中对象.属性值的非空判断和字符串长度的判断,必须得有非空判断,否则报错 3. 字符串的截取显示, <td title=”悬浮显示的值”> 4. 页面代码展示...

ESP8266 AT MQTT 透传指令接入阿里云物联网平台笔记;

文章目录 一:前言 三:创建云端设备 第二步,创建产品 第三步,添加设备 第四步,自定义Topic 四:硬件连接 五:配置终端设备 第二步,根据参数使用AT指令配置ESP-12S使设备上线; 六:MQTT实现发布&订阅消息 七:总结 一:前言 工作之余目前发现有很多客户想产品对接阿里云实现控制,出一篇安信可ESP8266通过AT指令接入阿里云,实现MQTT的订阅和发布。 二:准备材料 1....