两者之间有什么区别(如果有):

@ModelAttribute(value = "attendanceStatuses")
public List<Code> getAttendanceStatusCodes() {
    List<Code> attendanceStatuses= new ArrayList<Code>(
      cacheService.getValidCodesOfCodeGroup(CODE_GROUP));
    return attendanceStatuses;
}




@ModelAttribute(value = "attendanceStatuses")
public List<Code> getAttendanceStatusCodes() {
    return cacheService.getValidCodesOfCodeGroup(CODE_GROUP);
}


cacheService方法是:

List<Code> getValidCodesOfCodeGroup(CodeGroupName codeGroupName);

最佳答案

第一个代码段返回List返回的cacheService.getValidCodesOfCodeGroup(CODE_GROUP)的副本:

new ArrayList<Code>(cacheService.getValidCodesOfCodeGroup(CODE_GROUP))


第二个片段不是-它仅返回cacheService.getValidCodesOfCodeGroup(CODE_GROUP)

这些片段中没有任何内容。

请注意,在返回List之前将其分配给局部变量没有区别。您可以将第一个代码段更改为:

public List<Code> getAttendanceStatusCodes() {
    return new ArrayList<Code>(cacheService.getValidCodesOfCodeGroup(CODE_GROUP));
}


不改变行为。

10-06 09:13