使用map 封装数据时 sonar 建议使用 computeIfAbsent 方法来替代已经写好的code.
private List<UserPO> getActiveAdminUsers(Map<String, List<UserPO>> companyAdminUsersMap, String companyId) {
// List<UserPO> activeAdminUsers = companyAdminUsersMap.get(companyId);
//
// if (null == activeAdminUsers) {
// Set<UserClientAuthorityItem> allAdmin = userDAO.getUsersInRoles(companyId, false, Constants.ROLE_COMPANY_ADMINISTRATOR);
// activeAdminUsers = allAdmin.stream().map(UserClientAuthorityItem::getUserPO).collect(Collectors.toList());
// companyAdminUsersMap.put(companyId, activeAdminUsers);
// }
//
// return activeAdminUsers;
return companyAdminUsersMap.computeIfAbsent(companyId, s -> {
Set<UserClientAuthorityItem> allAdmin = userDAO.getUsersInRoles(companyId, false, Constants.ROLE_COMPANY_ADMINISTRATOR);
return allAdmin.stream().map(UserClientAuthorityItem::getUserPO).collect(Collectors.toList());
} );
}
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
key 为map对象的key
function 为函数接口,我们可以在里面处理自己的逻辑,方法的返回值不为空时会put进map对象中