首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何访问在drools中作为事实插入的String对象

在Drools中,要访问作为事实插入的String对象,可以通过以下步骤进行操作:

  1. 首先,确保已经正确导入Drools相关的库和依赖。
  2. 创建一个Drools的规则文件(.drl文件),在文件中定义规则和事实。
  3. 在规则文件中,使用declare关键字声明一个事实类型,例如:
代码语言:txt
复制
declare MyFact
    myString: String
end

这里声明了一个名为MyFact的事实类型,其中包含一个名为myString的String属性。

  1. 在规则文件中,使用insert关键字将String对象作为事实插入,例如:
代码语言:txt
复制
rule "My Rule"
when
    // 规则条件
then
    MyFact fact = new MyFact();
    fact.setMyString("Hello, World!");
    insert(fact);
end

这里定义了一个名为"My Rule"的规则,当满足规则条件时,会创建一个MyFact对象,并将其插入到Drools的工作内存中。

  1. 在应用程序中,通过Drools的API获取插入的String对象。具体步骤如下:
代码语言:txt
复制
// 创建KieServices实例
KieServices kieServices = KieServices.Factory.get();

// 加载规则文件
KieContainer kieContainer = kieServices.getKieClasspathContainer();

// 创建KieSession实例
KieSession kieSession = kieContainer.newKieSession();

// 执行规则
kieSession.fireAllRules();

// 获取插入的String对象
QueryResults results = kieSession.getQueryResults("getMyString");
for (QueryResultsRow row : results) {
    MyFact fact = (MyFact) row.get("$fact");
    String myString = fact.getMyString();
    System.out.println(myString);
}

在上述代码中,首先创建了一个KieServices实例,然后加载规则文件并创建KieSession实例。接着,通过执行规则并使用查询语句获取插入的String对象。

需要注意的是,为了能够获取插入的String对象,需要在规则文件中定义一个查询语句,例如:

代码语言:txt
复制
query "getMyString"
    $fact: MyFact()
end

这里定义了一个名为"getMyString"的查询语句,用于获取MyFact类型的事实对象。

以上就是在Drools中访问作为事实插入的String对象的步骤。对于Drools的更多详细信息和使用方法,可以参考腾讯云的Drools产品介绍页面:Drools产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【Drools】值得打工人学习的规则引擎Drools<一>

    规则引擎:全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。 需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。 目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等。 规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台。

    02

    小明历险记:规则引擎Drools教程一

    小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。 小明的烦恼 活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲到。小明心想,又tm来这套,这次需求又要变更多少次呢?表面上还的配合,说赶紧把规则给我们吧,早点开发早点上线,小王说这次需求老简单啦,估计你们两

    03

    2018-11-07 Drools业务逻辑框架

    大部分 web 以及企业级 Java 应用可被分成三部分:与用户交互的前台,与数据库这样的后台系统交互的服务层,以及它们之间的业务逻辑。最近这段时间,通常我们会使用框架来实现前台和后台的需求(例如:Struts, Cocoon, Spring, Hibernate, JDO, 以及实体 Beans),但是却没有一种标准手段很好的组织业务逻辑。像 EJB 和 Spring 这样的框架都以 high level 方式处理,这无助于组织我们的代码。除非我们改变这种凌乱,否则系统将不会健壮,框架中杂乱的 if...then 语句能带给我们可配置性、可读性的优点,以及在其他地方复用代码的愉悦吗?本文将介绍如何使用 Drools 规则引擎框架来解决这些问题。

    03

    OptaPlanner规划引擎的工作原理及简单示例(2)

    在前面一篇关于规划引擎OptaPlanner的文章里(OptaPlanner规划引擎的工作原理及简单示例(1)),老农介绍了应用OptaPlanner过程中需要掌握的一些基本概念,这些概念有助于后面的内容的理解,特别是关于将约束应用于业务规则上的理解。承上一文,在本篇中将会减少一些理论,而是偏向于实践,但过程中,借助实际的场景对一些相关的理论作一些更细致的说明,也是必要的。本文将会假设我们需要对一个车间,需要制定生产计划.我们为生产计划员们设计一套智能的、自动的计划系统;并通过OptaPlanner把这个自动计划系统开发出来。当然,里面的业务都是经过高度抽象形成的,去除了复杂的业务规则,仅保留可以体现规划引擎作用的一些业务需求。因此,这次我们只用一个简单的小程序即可以演绎一个自动计划系统,来呈现规划引擎OptaPlanner在自动计划上的魅力。

    01
    领券