java中避免过多if判断


先创建好存起来,然后通过key去取

利用容器加载机制

环境:spring-boot

@Autowired(required = false)
Map<String, RuleMatch> references;
//Db2RuleMatch,MssqlRuleMatch,MysqlRuleMatch,OracleRuleMatch,PgsqlRuleMatch ... 继承实现RuleMatch
void method(Bean b1,...){
     if (references == null || references.isEmpty()) return;
     RuleMatch ruleMatch = references.get(b1.getDbms_type() + "RuleMatch");
     ruleMatch.matchRule(...);
}

利用java8的函数接口

 final Map<Integer, Function<String, Boolean>> regx = new HashMap<>();
 
    {
        regx.put(1, v -> identityCard.match(v));
        regx.put(2, this::matchCommonEmail);
        regx.put(3, v -> bankCard.match(v));
        regx.put(4, this::matchMobilePhone);
        //...
    }
    
 boolean matchImpl(int[] rules,...) {
//...
for (int rid : rules) {
    if (regex.containsKey(rid)) {
       if (regex.get(rid).apply(value)) {
         return true;
       } else {
             //...
       }
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值