私は、AnyLogicの感染症の流行に関するエージェントベースのシミュレーションを行っています。私のモデルにはPersonとBuildingという2つのエージェントタイプがあります。私は、エージェントタイプ 'Person'が任意の時点で持っている感染性連絡先の数を数える関数を記述しようとしています。以下は、関数の私のコードです:AnyLogicエージェントベースのモデリング:ClassCastException
int infectedConnections = 0;
if (getConnections() != null)
for (Agent a : this.getConnections())
{
Person p = (Person) a;
if (p.IsCurrentlyInfected())
infectedConnections++;
}
return infectedConnections ;
コードがエラーなしでコンパイルされますが、実行時に、それはメッセージとjava.lang.ClassCastExceptionがアップスロー:model.Buildingはmodel.Personにキャストすることはできません。
エージェントタイプ(Person)で同じコードを試してみると、モデルは正常に動作し、関数は正しい値を返します。誰かが「Person」の機能を実行できるように、コードを修正する方法を教えてもらえますか?あなただけのタイプのビルのエージェントを無視したい場合は、次の操作を行うことができ
これはまさに私が探していたものです。どうもありがとうございました! – crabcanon