[英]"cannot be resolved or is not a field" error in Anylogic event condition
請有人幫忙,我對 Java 和 Anylogic 很陌生!
我在名為“Upis_studenta_RI”的事件的條件部分中遇到錯誤:
Upisna_kvota_RI 無法解析或不是字段。 地點:Model-1/Main/Upis_studenta_RI - 活動
potražnja_RI 無法解析或不是字段。 地點:Model-1/Main/Upis_studenta_RI - 活動
Brucoši 無法解決或不是一個字段。 地點:Model-1/Main/Upis_studenta_RI - 活動
條件中的代碼是:
studenti_Rijeka.inState(studenti_Rijeka.Brucoši)<=studenti_Rijeka.Upisna_kvota_RI &&
studenti_Rijeka.potražnja_RI>=studenti_Rijeka.Upisna_kvota_RI
“studenti_Rijeka”是 Main 中的代理,“Brucoši”是代理 studenti_Rijeka 內部狀態圖中的 State,“Upisna_kvota_RI”和“potražnja_RI”是同一代理中的參數。
這是代碼(在 AnyLogic 中生成)
@Override
@AnyLogicInternalCodegenAPI
public boolean testConditionOf( EventCondition _e ) {
if ( _e == Upis_studenta_RI) return
studenti_Rijeka.inState(studenti_Rijeka.Brucoši)<=studenti_Rijeka.Upisna_kvota_RI &&
studenti_Rijeka.potražnja_RI>=studenti_Rijeka.Upisna_kvota_RI
;
return super.testConditionOf( _e );
}
參數 potražnja_RI 編碼為:
public
double potražnja_RI;
/**
* Returns default value for parameter <code>potražnja_RI</code>.
* <i>This method should not be called by user</i>
*/
@AnyLogicInternalCodegenAPI
public double _potražnja_RI_DefaultValue_xjal() {
final Rijeka self = this;
return
50
;
}
public void set_potražnja_RI( double value ) {
if (value == this.potražnja_RI) {
return;
}
double _oldValue_xjal = this.potražnja_RI;
this.potražnja_RI = value;
onChange_potražnja_RI_xjal( _oldValue_xjal );
onChange();
}
當您調用inState(Statename)
時,您應該引用代理類型而不是代理的實例以獲取狀態名稱。
例如count(customers,c->c.inState(Customer.greenState))
其中Customer
是代理類型(大寫字母)
有關類似問題,請參閱此問題
我假設您的代碼必須是
studenti_Rijeka.inState(Studenti_Rijeka.Brucoši)
如果studenti_Rijeka
是Studenti_Rijeka
的一個實例
請記住,您不能詢問人口是否在 state 中,代理人人口只是一個集合......您需要詢問 state 中的每個單獨代理人
例如
for (Rijeka rijeka:studenti_Rijeka) {
if (riejka.inState(Rijeka.Brucoši)) {
traceln("do something");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.