0
我有以下的類結構(A類包含B類):不能使累積到正常工作
class A {
B object;
...
}
,我試圖做一些事情只要平均一個特定領域的積累在B類中高於給定值。
所以我想編寫如下:
when
A($var1 : object)
accumulate(B($num:num) from $var1;
$avg1 : avg ($num); $avg1 < 10000)
then ...
發生什麼事,而不是積累的所有實體,會話並計算平均值爲所有的人,正在對每個實體計算的平均分別。 所以如果會話已經包含5個大於10000的數字值,並且插入另一個數字,那麼「then」部分將被調用6次(每一個的平均值等於數字值本身),而不是隻調用一次。
你有一些提示可以幫助我解決這個問題嗎?
謝謝。
感謝。我會嘗試。但是我忘記提到的一件事是,B類是抽象的,數字值是在它的一個孩子裏面。在這種情況下,我可以把B班教給正確的孩子嗎? – user3120237 2015-02-06 09:14:13
哪種情況是「這種情況」? AB是一個B,即使是抽象的,並且一個擴展B的B也是一個B, – laune 2015-02-06 11:30:01
如果字段num只在一個(不是全部)子類中,那麼你不能以這樣一種簡單的方式來做到這一點,因爲接口由B定義不存在。但那麼你的原始代碼將不會編譯。 – laune 2015-02-06 11:34:55