源码中一些好的代码写法

发布时间 2023-05-05 06:44:50作者: 酷酷-

1  Map相关

摘自 Spring中加载 META-INF/spring.factories 下的类名,Map的巧初始化:

Map<String, List<String>> result = cache.get(classLoader);
// 缓存中有就直接返回
if (result != null) {
    return result;
}
// 初始化Map
result = new HashMap<>();
// value是个集合,初始化value并放数据
result.computeIfAbsent(factoryTypeName, key -> new ArrayList<>()).add(factoryImplementationName.trim());
// 对value去重并转换为可读集合
result.replaceAll((factoryType, implementations) -> implementations.stream().distinct().collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList)));

2  字符串相关

摘自 Spring中加载 META-INF/spring.factories 下的类名,逗号分隔:

// 逗号分隔出来每个全类名
String[] factoryImplementationNames = StringUtils.commaDelimitedListToStringArray((String) entry.getValue());