• java 方法作为参数封装在map


    package com.exe.competency.service.impl;
    
    import com.exe.competency.domain.RuleParam;
    import com.exe.competency.domain.RuleResult;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.PostConstruct;
    import javax.inject.Inject;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.function.Function;
    
    @Service
    public class RuleContext {
    
        @Inject
        LegalPersonServer legalPersonServer;
        @Inject
        AssignPostServer assignPostServer;
        @Inject
        AssignTagServer assignTagServer;
        @Inject
        AssignPositionServer assignPositionServer;
        @Inject
        ParentLegalPersonServer parentLegalPersonServer;
        @Inject
        AssignDeptAndPostServer assignDeptAndPostServer;
        @Inject
        LeaderServer leaderServer;
    
    
        Map<Integer, Function<RuleParam, RuleResult>> funcMap = new HashMap<>();
    
        @PostConstruct
        public void init() {
            funcMap.put(1, RuleParam -> legalPersonServer.getUserList(RuleParam));
            funcMap.put(2, RuleParam -> assignPostServer.getUserList(RuleParam));
            funcMap.put(3, RuleParam -> assignTagServer.getUserList(RuleParam));
            funcMap.put(4, RuleParam -> assignPositionServer.getUserList(RuleParam));
            funcMap.put(5, RuleParam -> parentLegalPersonServer.getUserList(RuleParam));
            funcMap.put(6, RuleParam -> assignDeptAndPostServer.getUserList(RuleParam));
            funcMap.put(7, RuleParam -> leaderServer.getUserList(RuleParam));
        }
    
        public RuleResult getUserList(int kind, String userId, List<String> fromIds, int type) {
            Function<RuleParam, RuleResult> stringListFunction = funcMap.get(kind);
            if (stringListFunction != null) {
                RuleParam rule = new RuleParam();
                rule.setUserId(userId);
                rule.setFromId(fromIds);
                rule.setType(type);
                return stringListFunction.apply(rule);
            }
            return null;
        }
    
    }

    @Service
    public class LegalPersonServer extends ExecutorServerBase {
    @Inject
    CompetencyExaminePlanRuleRepository competencyExaminePlanRuleRepository;

    @Override
    public List<String> setUserList(RuleParam rule) {
    return competencyExaminePlanRuleRepository.getLegalPerson(rule.getUserId());
    }
    }
     
  • 相关阅读:
    UIWebView 本地缓存
    基于x86 Android ndk应用移植指南(android ndk 生成libs/x86)
    安装android的IntelHaxm.exe时出错的问题
    使用javah生成.h文件, 出现无法访问android.app,Activity的错误的解决
    犯傻似得的开发
    关于在win8下开发c或者c++时,某些特殊情况
    android 图片加载过多崩溃
    辞职的三十八个理由
    android程序的代码混淆打包
    几条常见的数据库建表id增长sql语句
  • 原文地址:https://www.cnblogs.com/deepalley/p/15678384.html
Copyright © 2020-2023  润新知