我寫我的碩士論文從來就使用JESS平臺吧。我想問個問題。
例如,我有這個Java類,它被命名爲「主」:
public class Main {
private String user = "Joe";
public String getUser(){ return user; }
public String setUser(String user){ this.user = user;}
public static void main(String[] args) throws Exception {
Main main = new Main();
Rete rete = new Rete();
rete.store("main", main);
rete.batch("two.clp");
}
}
現在我想打電話給CLP-文件,並操縱主類,對象和做到這一點:
(printout t "main.user = " ((fetch main) getUser) crlf) ;; I got for this Joe
((fetch main) setUser "Robin")
(printout t "main.user = " ((fetch main) getUser) crlf) ;; For this I got Robin
但是現在我想問你如何從Java代碼中調用這個名爲「Robin」的操縱用戶?如果我這樣用Java調用:
public static void main(String[] args) throws Exception {
Main main = new Main();
Rete rete = new Rete();
rete.store("main", main);
rete.batch("two.clp");
System.out.println(main.getUser());
}
我得到結果「喬」而不是「羅賓」。 可以告訴我如何獲取(或調用)Javaobject的操作版本嗎?當我操縱 從Jess到Robin的用戶名時,爲什麼不在我的Java類中操作?
我會感謝您的留言。謝謝。
這將是一個好主意,檢查您發佈的代碼是否(a)沒有語法錯誤,並且(b)真正再現了您所描述的問題。 – laune
那麼你把你的Main類中用戶的值設置爲「Joe」,所以當你調用getUser時,你當然會得到Joe。就像在第二個代碼片段中,你需要調用setUser,main.setUser(「Robin」) –