在使用等待块时为什么在AnyLogic中会出现空指针异常错误?

huangapple go评论66阅读模式
英文:

Why getting NullPointerException error in AnyLogic while using wait block?

问题

我有一个名为"client"的代理,其中包含3个变量(初始值都为false):

  1. var_puttingFreeService
  2. var_massageService
  3. var_simulatorService

现在在主程序中,我创建了一个每1分钟重复一次的"event"。此事件检查wait.size > 1并且任何服务为空时,如果对于此代理所有上述提到的变量值都为false,则释放来自"wait"的第一个代理。

但是,即使"wait"块不为空,我仍然收到"NullPointerException"错误。
请告诉我我在哪里出错了。

英文:

I have a agent "client" which contain 3 variables (all are initially false)

  1. var_puttingFreeService
  2. var_massageService
  3. var_simulatorService

Now in the Main, I create an "event" which repeat in every 1 minute.
This event check if wait.size > 1 and any service is empty, then free the first agent from "wait" if all the above mentioned variable values are false for this agent.

在使用等待块时为什么在AnyLogic中会出现空指针异常错误?
在使用等待块时为什么在AnyLogic中会出现空指针异常错误?

But i am getting "NullPointerException" error even though the wait block is not empty.
在使用等待块时为什么在AnyLogic中会出现空指针异常错误?

Kindly let me know where I am making mistake.

答案1

得分: 1

你需要明白的是:

false && false || true || false

是真的

你需要适当地使用括号,&& 优先级高于 ||

所以你应该这样做:

if (wait.size() > 1 && (delay1.size() == 0 || delay2.size() == 0))

你看到区别了吗?

英文:

what you need to understand is that
false && false || true || false

is true

you need to use parenthesis appropriately and the && takes precence over the ||

so you should do

if (wait.size()>1 && (delay1.size()==0 || delay2.size()==0))

you see the difference?

huangapple
  • 本文由 发表于 2023年2月19日 04:56:10
  • 转载请务必保留本文链接:https://go.coder-hub.com/75496345.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定