package cn.netkiller.test;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
class Rule {
Predicate<Integer> condition;
Runnable action;
Rule(Predicate<Integer> condition, Runnable action) {
this.condition = condition;
this.action = action;
}
}
public class Test {
static void main(String[] args) {
int value = 15;
List<Rule> rules = Arrays.asList(
new Rule(v -> v < 10, () -> System.out.println("小于 10")),
new Rule(v -> v >= 10 && v < 20, () -> System.out.println("10 到 20")),
new Rule(v -> v >= 20, () -> System.out.println("大于等于 20"))
);
rules.stream()
.filter(rule -> rule.condition.test(value))
.findFirst()
.ifPresent(rule -> rule.action.run());
}
}