在Java Lambda或DecisionTree中实现嵌套条件

时间:2017-08-07 06:47:08

标签: java

我需要实现一组复杂的规则,这些规则可以通过许多嵌套条件来完成。我正在寻找一种更优雅的方式来做到这一点。最佳做法是什么? Java Lambda是否支持这些案例?决策树是正确的方法吗?

if(condition 1) {
  if (condition 2) {
   if (condition 3) {
    if (condition 4) {
     setValueToObject1();
    }
   } else //condition 3
    setValueToObject2();
  }
 }
 }
 } else {
  setValueToObject3();
 }

1 个答案:

答案 0 :(得分:1)

我建议您考虑使用Hamcrest。它允许匹配器以灵活和可扩展的方式组合,具有高可读性。

E.g。

if (allOf(m1, m2, m3)) {
    // TODO
}

Hamcrest在单元测试中经常使用,但它是一个通用的库。