首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接javaBean和JESS

连接javaBean和JESS
EN

Stack Overflow用户
提问于 2013-11-26 05:16:02
回答 1查看 104关注 0票数 0

我就是找不到解决方案...问题是:我有一个简单的主类,我在其中更改jvaBean的属性。然后,我想将javaBean的属性作为事实加载到我的JESS程序中。

我让它变得简单:// java main

代码语言:javascript
复制
public static void main(String[] args) {
Bean testbean = new Bean();
testbean.setName("test");
Rete engine = new Rete();
engine.batch("simple");
engine.run();
}

// Bean类

代码语言:javascript
复制
public String name;
public String getName(){return name;}
public void setName(String name){this.name = name;}

// JESS simple.clp

代码语言:javascript
复制
(defclass bean Bean)
(bind ?b (new Bean))
(definstance bean ?b)
(facts)

当我启动java main时,javaBean并没有被断言。输出(facts)显示名称仍然为nil (null)

谁能帮帮我,谢谢!

丹尼

EN

回答 1

Stack Overflow用户

发布于 2013-11-26 07:23:00

您在这里创建了两个Bean对象;一个来自Java代码,另一个来自Jess代码。您设置了从Java创建的工作内存的name属性,但实际添加到工作内存的是从Jess创建的工作内存。您可以使用Jess或Java或两者的组合来完成此操作,但如果只需要一个对象,则只需创建一个。例如,您可以像这样在Java中完成所有这些操作:

代码语言:javascript
复制
public static void main(String[] args) {
    Bean testbean = new Bean();
    testbean.setName("test");
    Rete engine = new Rete();
    engine.defclass("bean", "Bean", null, false);
    engine.definstance("bean", testbean, false);
    engine.eval("(facts)");
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20203487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档