AnyLogic从已有种群注入特定特征代理时inject方法报错,求修正
问题分析与修正方案
错误原因
- 语法错误:调用
inject方法时,在参数里重复声明了变量类型mp_lkw,违反Java语法规则,导致编译器提示删除多余的mp_lkw标识。 - 方法参数不匹配:你使用的
Source<mp_lkw>组件的inject方法,当前可用的重载版本仅接受整数参数(指定注入数量),但你传入了mp_lkw对象、整数、布尔值共四个参数,完全不符合方法的参数定义,因此触发报错。
修正代码
要注入带有自定义特征的mp_lkw对象,需使用Source组件支持的、能直接接收对象实例的inject重载方法。修正后的代码如下:
for (mp_lkw l : pop_mp_lkw) { if (l.ankunftszeit == getTime()) { // 直接传入目标对象,注入1个该对象的实例 source_mp_lkw.inject(l); // 若需注入多个相同对象,可使用:source_mp_lkw.inject(l, 1); } }
说明
- 移除了
inject参数中多余的mp_lkw类型声明,仅传入变量l,解决语法错误。 - 使用接受
mp_lkw对象的inject重载方法,匹配Source<mp_lkw>的泛型定义,确保参数符合方法要求,成功注入带有特定ankunftszeit特征的对象。
内容的提问来源于stack exchange,提问作者Steffen
相关产品推荐
相关产品推荐

