06-14-2013, 08:44 AM
下記のクラスのインスタンスから、問合せ(askメソッド)を受けるのですが、どうしても処理が1回で終わらず、
リターンされたと思っても、もう一度戻ってきて、また問合せが呼び出されてしまいます。
どうすればいいですか?
また、パブリックなはずのフィールド(wife)も、
どれだけ呼び出しても値を取得できず、理由がわかりません。
わかる方がいらっしゃったら教えてください。
リターンされたと思っても、もう一度戻ってきて、また問合せが呼び出されてしまいます。
どうすればいいですか?
また、パブリックなはずのフィールド(wife)も、
どれだけ呼び出しても値を取得できず、理由がわかりません。
わかる方がいらっしゃったら教えてください。
Code:
{define-class public abstract Colonbo {inherits Man, Lieutenant}
field private _wife:#Person = {uninitialized-value-for-type Women}
{getter public {wife}:#Women
{return null}
}
{method public {on-murder-case e:MurderCase}:void
def check-person = {self.check-murder-case e}
{while (check-person == e.murder) do
def ret = {popup-question-to check-person}
{if true then
def key = {self.ask check-person, e.keys}
{if key.proof? == true then
set e.murder = check-person
}
}
}
}
{method protected {ask person:Person, keys:{Array-of Key}}:Key
let key:Key = {Key}
def appendix-keys = {self.hunch keys}
{for k in keys do
{self.ask-impl person, k}
}
{after 2s do
{self.ask person, appendix-keys}
}
{return key}
}