簡體   English   中英

Anylogic事件條件中的“無法解析或不是字段”錯誤

[英]"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_RijekaStudenti_Rijeka的一個實例

請記住,您不能詢問人口是否在 state 中,代理人人口只是一個集合......您需要詢問 state 中的每個單獨代理人

例如

for (Rijeka rijeka:studenti_Rijeka) {
   if (riejka.inState(Rijeka.Brucoši)) {
      traceln("do something");
   }
}

計算某些 state 中的所有代理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM