我執行我的應用程序中的methond使用的Jessp分析器類,以打開一個文件,並得到其內部的deftemplates和deffacts。問題是當試圖將結果獲取到一個對象變量時,它會在構造函數中詢問一個JessTokenStream。我試圖通過一個JessToken,但後來它抱怨的類型,它應該是E8。通過Jess文檔搜索,但沒有找到參數的解釋,只有構造函數的語法。 任何人都可以提供幫助嗎? 在此先感謝!Jess應用程序中的parseDeftemplate。不能提供JessTokenStream
回答
類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));
}
}
感謝您的回答。我已經使用了parseExpression(),它能夠正確識別文件中的deftemplate和deffacts部分,但有沒有辦法訪問對象的內容?我試圖用parseDeftemplate做的事情是識別並獲取文件中的deftemplate,並且同樣爲deffacts。 – creator4983
Deftemplate是一個公開課,將返回的對象轉換爲Deftemplate,然後使用其API。 –
我一直在嘗試使用parseExpression的返回對象來工作,但目前爲止沒有結果。它正確地標識了類型,但是當試圖獲取我不能的對象的內容時。 – creator4983
- 1. 不能使用django-mssql提供程序
- 2. 谷歌不提供Angular.js應用程序
- 3. 作爲OpenId提供程序的Appengine應用程序。可能嗎?
- 4. Java應用程序不能同時提供兩個請求
- 5. Apache提供的角度應用程序
- 6. 在WPF應用程序中提供模板功能 - 如何?
- 7. 在網絡應用程序中提供快速`select count(*)`功能
- 8. 應用程序提供的字體不在Info.plist中
- 9. 在mvc2應用程序中使用角色提供程序
- 10. 在WPF應用程序中使用ASP .NET PROFILE提供程序
- 11. APC不會爲Symfony1.4/Doctrine應用程序提供任何性能提升?
- 12. 提供Windows 8應用程序和桌面應用程序
- 13. 不能提交應用程序IOS
- 14. Rails應用程序未提供資產
- 15. JavaScript提供Codeplex「應用程序運行」
- 16. 向公衆提供應用程序
- 17. 沒有提供令牌應用程序
- 18. 從WCF提供Flex4應用程序
- 19. Dagger 2 - 提供應用程序類
- 20. 爲測試版提供應用程序
- 21. 在web上提供web2py應用程序
- 22. Rails應用程序不能在生產環境中提供資源
- 23. 在JavaEE應用程序中作爲JPA提供程序休眠
- 24. 如何爲Java應用程序提供網絡功能?
- 25. 是否有可能圍繞應用程序提供防火牆?
- 26. 可可應用程序提供了EXC_BAD_ACCESS任何GL功能
- 27. 嵌入式碼頭不能提供我的網絡應用程序
- 28. 提供程序託管的應用程序啓動問題
- 29. 部署OraOLEDB提供程序的應用程序
- 30. 如何爲CLI應用程序提供所需的程序集?
你的意思是'jess.Jesp'?而目前的Jess API不包含類JessTokenStream。 - 到目前爲止你的代碼是什麼?您搜索哪些文檔,API/javadoc肯定包含所有參數的解釋。也許我也應該要求Jess版本。 – laune
@laune好了,我的傑斯的文檔中擁有的唯一的參考apiis這樣:public自定義模板parseDeftemplate(上下文的背景下, Rete算法引擎, jess.JessTokenStream JTS) 拋出我使用的最後一個版本傑斯JessException – creator4983
@laune (71p2)。爲什麼在這裏發佈回覆時,我不能使用換行符作爲換行符?它直接進入保存評論。這就是上一篇文章看起來有點奇怪的原因。將嘗試通過網站搜索插入代碼的方式來縮進以便可讀。提前致謝! – creator4983