/**
* @author: szc
* @date: 2023/9/2 22:45
* @version: 1.0
* @description: 从map中获取函数式接口,解决if-else 多个子类问题
*/
@Service
public class MapToInterface {
@Autowired
private TypeResult typeResult;
private static Map<String, Function<String, String>> map = new HashMap<>();
@PostConstruct
public void init(){
map.put("类型1", type ->typeResult.getType1(type));
map.put("类型2", type ->typeResult.getType2());
map.put("类型3", type ->typeResult.getType3());
}
public String getTypeResult(String type){
Function<String, String> function = map.get(type);
if(function != null){
String result = function.apply(type);
return result;
}
return null;
}
}
@Service
class TypeResult{
public String getType1(String type){
return "传入的type为"+type+"获取类型1结果";
}
public String getType2(){
return "获取类型2结果";
}
public String getType3(){
return "获取类型3结果";
}
}