记一次用Map优化if/else的过程
原代码
1 |
|
1 | public interface PathType { |
下面定义了一种工厂类的方法,在另外一篇文章中有提到。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23public class FileService {
private FileHandlerFactory fileHandlerFactory;
public void processFiles(IntegrateData integrateData, Map<String,Object> renderData) {
if(!StringUtils.isEmpty(integrateData.getPathTypeA())){
fileHandlerFactory.getFileHandler(PathType.A).handle(integrateData.getPathTypeA(),renderData);
}
if(!StringUtils.isEmpty(integrateData.getPathTypeB())){
fileHandlerFactory.getFileHandler(PathType.B).handle(integrateData.getPathTypeB(),renderData);
}
if(!StringUtils.isEmpty(integrateData.getPathTypeC())){
fileHandlerFactory.getFileHandler(PathType.C).handle(integrateData.getPathTypeC(),renderData);
}
if(!StringUtils.isEmpty(integrateData.getPathTypeD())){
fileHandlerFactory.getFileHandler(PathType.D).handle(integrateData.getPathTypeD(),renderData);
}
if(!StringUtils.isEmpty(integrateData.getPathTypeE())){
fileHandlerFactory.getFileHandler(PathType.E).handle(integrateData.getPathTypeE(),renderData);
}
}
}
优化后
1 | public class FileService { |
说明
第一点是使用匿名内部类的方式来初始化map,List、Set也可以这样:
1
2
3
4
5
6
7
8
9List<String> someList = new ArrayList<String>()
{
{
for (int i = 0; i < 10; i++)
{
add("A" + i);
}
}
};Optional的使用
- Map的遍历方式
- 将常量定义在了interface里,也可以用class、enum
Read More
[1] Java 中 HashMap 初始化时赋值
[2] HashMap优雅的初始化方式以及引申
[3] Java8 如何正确使用 Optional
[4] 使用 Java8 Optional 的正确姿势
[5] Java8中Map的遍历方式总结
[6] Java HashMap 遍历方式性能探讨
[7] Java Map遍历方式的选择
[8] Java Interface 是常量存放的最佳地点吗?
[9] Java Interface 是常量存放的最佳地点吗?