@记录一下坏味道及处理方法
起因:程序初始化资源,非静态方法往静态map塞值
上代码
被检测的代码
@Slf4j
@Configuration
@RequiredArgsConstructor
public class classA{
private static Map<String, JavaBean> beanMap= Maps.newHashMap();
private final IJavaBeanService beanService;
@PostConstruct
public void init(){
List<JavaPojo> beanList= beanService.list();
beanMap.clear();
beanMap=beanList.stream().map(
a->{
JavaBean bean=null;
**初始化资源**
return bean;
}
).collect(Collectors.toMap(b -> b.getKey(), a -> a)); //这里被标记坏味道
}
public static Map<String, JavaBean> getJavaBean() {
return beanMap;
}
}
PS 在这里会被检测出Instance methods should not write to “static” fields
更正过以后的代码
@Slf4j
@Configuration
@RequiredArgsConstructor
public class classA{
private static Map<String, JavaB