anylogic - 尝试从 AnyLogic 中的 Main 访问代理时出现 NullPointerException
问题描述
我正在尝试从 Main 向处于特定状态的代理发送消息。我已经这样做了很多次,但这次 AnyLogic 返回 NullPointerException 错误。
这是我用来发送消息的代码:
User chosen_user = randomWhere(users, t -> t.inState(User.Innactive));
users.get(chosen_user.getIndex()).receive("message");
用于traceln(chosen_users.getIndex())
打印索引,一切正常。就在我将索引插入函数 get() 时,它返回错误。
即使我只插入一个随机数,比方说users.get(1).receive("message")
,它仍然返回相同的错误(我的人口有 700 个代理)。
有什么想法吗?
解决方案
这只是因为在某个特定时间没有用户处于该状态,所以您的呼叫返回。Innactive
randomWhere
null
您也不需要间接使用索引;只需使用以下功能将消息直接发送给它send
:
if (chosen_users != null) {
send("message", chosen_users);
}
(您的命名也具有误导性,因为chosen_users
始终是一个User
代理(或null
)。)
推荐阅读
- python - 如何设置多处理中的最大并发工作者数?
- java - UnsatisfiedLinkError: /tmp/snappy-1.1.4-libsnappyjava.so 加载共享库 ld-linux-x86-64.so.2 时出错:没有这样的文件或目录
- javascript - 在 ASP.Net Core 中单击单选按钮提交表单
- javascript - 在 api 请求解决之前,componentWillMount 检查未定义
- c# - SQL 返回不正确的行数
- c - 如何使用带有整数和字符串的文本文件中的 fscanf 和 fgets?
- arrays - 有没有办法在 Swift 中使用 Accelerate 库执行 2D 卷积?
- javafx - 启动 JavaFx Gui 程序时遇到问题
- c - 在 glib 中运行 cat /proc/cpuinfo
- python - 如何在 PyQt5 的 MainWindow 中有效地导入用户创建的 Widget?