Parsing Jess应用程序中的parseDeftemplate。无法提供该流

Parsing Jess应用程序中的parseDeftemplate。无法提供该流,parsing,jess,Parsing,Jess,我在我的应用程序中实现了一种方法,它使用Jessp parser类来打开一个文件并获取其中的defmetlates和deffacts。问题是,当试图将结果获取到对象变量中时,它会向构造函数请求一个流。我试图传递一个JessToken,但它抱怨类型应该是e8。搜索了Jess文档,但没有找到参数的解释,只有构造函数的语法。 有人能帮忙吗?。 提前感谢 类JessTokenStream不是公共的,因此您不能实际调用那些parseXXX方法。由于历史原因,它们是公共的,但实际上不可供客户端使用。它们实际

我在我的应用程序中实现了一种方法,它使用Jessp parser类来打开一个文件并获取其中的defmetlates和deffacts。问题是,当试图将结果获取到对象变量中时,它会向构造函数请求一个流。我试图传递一个JessToken,但它抱怨类型应该是e8。搜索了Jess文档,但没有找到参数的解释,只有构造函数的语法。 有人能帮忙吗?。
提前感谢

类JessTokenStream不是公共的,因此您不能实际调用那些parseXXX方法。由于历史原因,它们是公共的,但实际上不可供客户端使用。它们实际上应该从公共接口中删除

相反,请使用parseExpression的双参数形式,然后测试返回的对象以确定其类型。然后,您可以对返回的对象执行所需的操作:

Rete engine = ...
Jesp jesp = ...
Object o = jesp.parseExpression(engine.getGlobalContext(), false);
if (o instanceof Deffacts) {
    Deffacts d = (Deffacts) o;
    for (int i = 0; i<d.getNFacts(); ++i) {
        Fact f = d.getFact(i);
        Deftemplate t = f.getDeftemplate();
        System.out.println("Fact name is " + f.getName();
        System.out.println("Fact name is " + f.getName();
        for (String name: t.getSlotNames())
            System.out.println("Slot " + name + " contains " + f.getSlotValue(name));
    }
}

你是说杰斯,杰斯普?并且当前Jess API不包含类JessTokenStream。-到目前为止你掌握了什么密码?您正在搜索哪些文档,并且API/javadoc肯定包含所有参数的解释。也许我还应该问一下Jess版本。@laune我在Jess Api的文档中得到的唯一参考是:public-Deftemplate-parseDeftemplateContext-context,Rete-engine,杰斯,杰斯,杰斯JessException@laune我用的是最新的jess版本71p2。为什么我在这里发布回复时不能使用换行返回?。它直接转到save注释。这就是前一篇文章看起来有点奇怪的原因。将尝试通过搜索网站的方式插入缩进良好的代码,以便可读。提前谢谢!嗯,奇怪。这可能是您可以通过试用版访问的边界。我不能调用任何Jesp方法。也许ejfh会澄清这一点。您试图通过调用Jesp解析文件的意图是什么?这不是你通常想要或需要做的事情来运行Jess会话。谢谢你的回答。我使用了parseExpression,它正确地标识了文件中的deftemplate和deffacts部分,但是否有办法访问对象的内容?。我试图用parseDeftemplate做的事情是在文件中识别并获取deftemplate,deffacts也是如此;将返回的对象强制转换为Deftemplate,然后使用其API。我一直在尝试使用parseExpression的返回对象使其工作,但到目前为止没有结果。它正确地标识了类型,但是当尝试获取对象的内容时,我不能。我一直在尝试使用parseExpression的返回对象使其工作,但到目前为止没有结果。它正确地标识了类型,但是当尝试获取对象的内容时,我不能。我想做的主要目的是,从.clp文件中分离,获取事实的不同部分,我的意思是,事实名称、插槽名称和值,并将它们放在jtable上。然后我想把这些数据用在其他地方。你不能,用什么方法?我将在上面的答案中添加一些示例代码,也许会有所帮助。