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

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

 

一,前言:

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

 

代码一:

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;

}


四,小结:

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

 

猜你喜欢

转载自blog.csdn.net/u013067756/article/details/80425570
今日推荐