我正在使用Drools 5.3.5和guvnor中定义的声明性事实模型。我在与规则引擎交互的应用程序的类路径上有drools-core-5.3.5.Final.jar
和knowledge-api-5.3.5.Final.jar
。
这些JAR中的每一个都包含一个名为FactType的接口:
drools-core-5.3.5.Final.jar -> org.drools.rule.FactType knowledge-api-5.3.5.Final.jar -> org.drools.definition.type.FactType
我看到org.drools.KnowledgeBase.getFactType()
返回org.drools.definition.type.FactType
个对象;那么org.drools.rule.FactType
用于什么?我的代码是否应该始终使用知识-api FactType?
答案 0 :(得分:1)
org.drools.rule.FactType可能是某些重构后留下的垃圾。完整类名的grep不会返回命中。 (我想我已经看到了其他的重复,但原谅我没有搜索它们。)
-api-jar在5.x期间发展,意图在一个罐子里收集所有稳定的IF。
一定要:坚持使用“稳定”javadoc中的类,即org.drools.definition.type.FactType
。这是升级到更高版本时保持兼容性的唯一方法(至少是尽力而为)。