最近整理项目时发现有个方法为判断两个记录的md5是否相等,源代码如下,因此方法在外层已经确保记录不为null,因此方法内不再对record实体类进行空判断操作
private boolean isMd5Equal(DownloadRecord oldRecord, DownloadRecord newRecord) {
if (newRecord.getMd5() == null && oldRecord.getMd5() == null) {
return true;
}
if (newRecord.getMd5() != null && newRecord.getMd5().equals(oldRecord.getMd5())) {
return true;
}
return false;
}
先判断是否为空,然后再判断是否相等,然后感觉代码可读性不太高,后优化成下面这段(借鉴了HashMap中判断key值是否相等的思想)感觉很好的说明了代码是否可读的例子,遂记录
private boolean isMd5Equal(DownloadRecord oldRecord, DownloadRecord newRecord) { String oldRecordMd5 = oldRecord.getMd5(); String newRecordMd5 = newRecord.getMd5(); return newRecordMd5 == null ? oldRecordMd5 == null : newRecordMd5.equals(oldRecordMd5); }