java函数返回值的问题

返回null需谨慎

1
2
3
4
5
6
7
8
9
10
@Override
public List<CampusTalk> listCampusTalksByStartTime(Timestamp begin, Timestamp end, int page, int size) {
Pageable pageable = PageRequest.of(page, size);
Page<CampusTalk> campusTalkPage = campusTalkRepository.findDistinctCampusTalkByStartTimeBetween(begin, end, pageable);
if (campusTalkPage.isEmpty()) {
return new ArrayList<>();
} else {
return campusTalkPage.getContent();
}
}

上面对campusTalkPage是否为空做了判断,当为空的时候,一开始我直接返回null,但在测试的时候忘记了,便使用campusTalks.size()(campusTalks是调用这个方法得到的结果)来判断结果是否为空,
很明显不是这样判断的,而应该判断campusTalks是否为null,如果是其他人使用呢,怎么会知道为空的时候是直接返回null,所以最后改为return new ArrayList<>()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

@Test
public void testListCampusTalksByStartTime() {
try {
List<CampusTalk> campusTalks = campusTalkService.listCampusTalksByStartTime(dateFormat.parse("2018-11-23 0:0:0"), new Timestamp(new Date().getTime()), 0, 4);
if (campusTalks.isEmpty()){
System.out.println("没有数据");
}else {
for (CampusTalk campusTalk : campusTalks) {
System.out.println(campusTalk.toString());
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
hsowan wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!