如何正确使用drools的类型声明(Type declarations)?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1067个文字,预计阅读时间需要5分钟。
一、背景+编写drl规则的时间,有时需要自行声明一些类别,用于辅助后续规则的运行。如果需要用到的类别还需要在Java中预先声明,这样就会显得不够灵活。那么,这是否可行?
一、背景在我们编写drl规则的时候,有些时候需要自己声明一些类,用于辅助之后的规则运行,如果需要用到的类还需要在java中预先声明出来,这样就不灵活了,那么是否可以在drl文件中声明一个类呢?可以使用drools的 Type declaration来实现。
KieBase kieBase = kieContainer.getKieBase("type-kabse");
// 规则文件的包名 声明的类型名
FactType productOrderFactType = kieBase.getFactType("rules", "ProductOrder");
Object instance = productOrderFactType.newInstance();
productOrderFactType.set(instance, "orderId", 20220517121212001L);
2、获取枚举类型的值
需要通过反射来获取到。
本文共计1067个文字,预计阅读时间需要5分钟。
一、背景+编写drl规则的时间,有时需要自行声明一些类别,用于辅助后续规则的运行。如果需要用到的类别还需要在Java中预先声明,这样就会显得不够灵活。那么,这是否可行?
一、背景在我们编写drl规则的时候,有些时候需要自己声明一些类,用于辅助之后的规则运行,如果需要用到的类还需要在java中预先声明出来,这样就不灵活了,那么是否可以在drl文件中声明一个类呢?可以使用drools的 Type declaration来实现。
KieBase kieBase = kieContainer.getKieBase("type-kabse");
// 规则文件的包名 声明的类型名
FactType productOrderFactType = kieBase.getFactType("rules", "ProductOrder");
Object instance = productOrderFactType.newInstance();
productOrderFactType.set(instance, "orderId", 20220517121212001L);
2、获取枚举类型的值
需要通过反射来获取到。

