动态 if-then 代码
Dynamic if-then Code
我正在使用决策树算法,我得到了 if-then 规则(以文本形式返回),例如:
if(Parameter1 > 10) then
if(Parameter2< 5) then do A
else do B
else do C
我想使用这些规则来决定几个项目:item(Parameter1, Parameter2) 示例:item1(15, 5), item2(10, 20), ...
问题是,if-then 规则是动态的,我想编写能够读取此规则并将其应用于项目的代码。
您可以反过来使用 Predicates 来实现您的测试。例如,
public class GreaterThan implements Predicate<Integer> {
private final int point;
public GreaterThan(final int point) {
this.point = point;
}
public boolean test(final Integer incoming) {
return incoming > point;
}
}
和
public class LessThan implements Predicate<Integer> {
private final int point;
public LessThan(final int point) {
this.point = point;
}
public boolean test(final Integer incoming) {
return incoming < point;
}
}
等等。然后您可以使用它来动态构建逻辑检查,因为您的测试现在可以正常运行了。
Predicate<Integer> gt10 = new GreaterThan(10);
Predicate<Integer> lt5 = new LessThan(5);
if(gt10.test(Parameter1)) then
if(lt5.test(Parameter2)) then do A
else do B
else do C
将 A、B 和 C 的执行包装在函数中,您就可以实现灵活的系统。现在你正在处理功能对象,你可以动态地构建事物——而不是上面显示的固定测试,你可以根据需要编写测试和结果。
我正在使用决策树算法,我得到了 if-then 规则(以文本形式返回),例如:
if(Parameter1 > 10) then
if(Parameter2< 5) then do A
else do B
else do C
我想使用这些规则来决定几个项目:item(Parameter1, Parameter2) 示例:item1(15, 5), item2(10, 20), ... 问题是,if-then 规则是动态的,我想编写能够读取此规则并将其应用于项目的代码。
您可以反过来使用 Predicates 来实现您的测试。例如,
public class GreaterThan implements Predicate<Integer> {
private final int point;
public GreaterThan(final int point) {
this.point = point;
}
public boolean test(final Integer incoming) {
return incoming > point;
}
}
和
public class LessThan implements Predicate<Integer> {
private final int point;
public LessThan(final int point) {
this.point = point;
}
public boolean test(final Integer incoming) {
return incoming < point;
}
}
等等。然后您可以使用它来动态构建逻辑检查,因为您的测试现在可以正常运行了。
Predicate<Integer> gt10 = new GreaterThan(10);
Predicate<Integer> lt5 = new LessThan(5);
if(gt10.test(Parameter1)) then
if(lt5.test(Parameter2)) then do A
else do B
else do C
将 A、B 和 C 的执行包装在函数中,您就可以实现灵活的系统。现在你正在处理功能对象,你可以动态地构建事物——而不是上面显示的固定测试,你可以根据需要编写测试和结果。