如何写才更简单?关于JAVA中优化判断非空写法的一个问题。

Kent_Chen 发布于 2014/07/28 17:01
阅读 3K+
收藏 0

Hi,

   有如下代码,传入一个参数,首先判断是否为空,再从数据库取该一个对象,判断对象是否为空然后取这个对象的一个属性值。我很老土的用如下写法,想知道有什么更简单的方法,大家平时是怎么写的?

// 获取考核通过分数
assessmentId = course.getAssessmentId();
if (!StringUtils.isEmpty(assessmentId)) {
    CourseExamination courseExamination = baseCourseExamMapper.selectByAssessmentId(assessmentId);
    if (courseExamination != null) {
        course.setPassMark(courseExamination.getPassGrade() == null ? 0 : courseExamination.getPassGrade());
    }
}


加载中
0
len
len
getPassGrade 干嘛不用int ,难道用Integer
陈文锦的秘密
陈文锦的秘密
回复 @len : 好吧,我看错了,我们说的不是同一行代码
陈文锦的秘密
陈文锦的秘密
而且啊, 楼主这是iBATIS吧? 一般orm中oid用包装类型是最佳实践吧? 用int比较坑爹吧, orm在内存和数据库同步的时候很不方便.
陈文锦的秘密
陈文锦的秘密
回复 @len : 楼主用的是 StringUtils.isEmpty ,还有可能是字符串吧?
len
len
回复 @陈文锦的秘密 : 如果用的是int,int是有默认值0的,不可能为空,所以也不用判断空
陈文锦的秘密
陈文锦的秘密
回复 @Kent_Chen : 哈哈,我也想问
下一页
0
purely
purely

boolean next = true;
if(StringUtils.isBlank(assessmentId){
	next = false;
}
CourseExamination courseExamination = null;
if(next){
	courseExamination = baseCourseExamMapper.selectByAssessmentId(assessmentId);
}
if(next && courseExamination == null){
	next = false;
 }
if(next){
	course.setPassMark(courseExamination.getPassGrade() == null ? 0 : courseExamination.getPassGrade());
}



purely
purely
if多是正常的。 如果是嵌套if多,就太晕了,一般写个2层if已经可以了,如果是3层以上,会看晕过去的。
Kent_Chen
Kent_Chen
好像多了更多的IF,如果有更多字段要判断怎么办?
0
Oh_hO
Oh_hO
if里面你可以加上return
0
len
len
多层if要转if-retern
返回顶部
顶部