两者之间有什么区别?
@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);
答案 0 :(得分:3)
第一个代码段返回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));
}
无需更改行为。