1

我试图从一个Java类中读取两个变量到我的.clp文件中进行比较。

谁能帮我解决这个问题。谢谢你。

我正在尝试这种方式..

(deftemplate Alarm  (declare (from-class Alarm)))

(Alarm (measuredValue ?m) (nominalValue ?n))

(printout t ?m ?n crlf)
4

1 回答 1

0

你应该Alarm在工作记忆中插入一个类的事实。然后像这样的规则

(defrule compalarm
  ?alarm <- (Alarm (measuredValue ?m)(nominalValue ?n))
=>
  (printout t ?m " - " $n crlf)
)

Alarm允许您访问某些此类对象的字段。至于比较这些值:您可以在规则中执行此操作,但您没有写如何,所以我没有添加任何内容。

稍后使用 Java 类创建对象并将其作为事实插入:

(bind ?alarm (new pack.age.Alarm))
(set-member ?alarm measuredValue 42)
(set-member ?alarm nominalValue 50)
(add ?alarm)

您可以使用它(get-member ...)来访问 Java 对象中的字段。

有关此(以及更多)信息,请参阅 Jess 手册。

于 2014-05-20T13:55:44.627 回答