2014-05-20 2 views
1

Java 클래스의 두 변수를 비교하려는 내 .clp 파일로 읽으려고합니다.jess에서 java 클래스의 변수를 읽는 방법은 무엇입니까?

아무도 도와 주실 수 없습니까? 고맙습니다. 당신은 작업 기억에 삽입 클래스 Alarm의 사실을 가지고 있어야

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

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

(printout t ?m ?n crlf) 

답변

0

나는이 방법으로 시도하고있다 .... 그런 다음이

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

같은 규칙은 일부 등 Alarm 객체의 필드에 액세스 할 수 있습니다. 이 값을 비교하는 방법 : 규칙에서이 작업을 수행 할 수 있지만 작성하지 않았으므로 아무 것도 추가하지 않았습니다.

나중에는 객체를 생성하기위한 자바 클래스를 사용하고 사실로 삽입하려면 : 당신은 Java 객체의 필드에 액세스 할 수 (get-member ...)을 사용할 수 있습니다

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

.

이 (이상) 정보는 Jess 설명서를 참조하십시오.

+0

친절한 답변을 보내 주셔서 감사합니다. Java에서 두 개의 값 (측정 및 공칭)을받는 Alarm 클래스를 만들었습니다. .clp 파일을 구현하고이 .clp를 Jess 엔진에 호출했습니다. 확인하기 위해 .clp 파일에 그 값을 읽고 싶은 규칙을 작성하기 전에 ...이 점에 대해 제게 생각해 볼 수 있습니까? Java 클래스의 사실을 어떻게 만들 수 있습니까? 앞으로 당신을 듣고 싶습니다. 미리 감사드립니다. – user3417084

관련 문제