gpt4 book ai didi

java - java中简单的空检查时出现NullPointerException

转载 作者:行者123 更新时间:2023-12-02 00:46:32 24 4
gpt4 key购买 nike

我在仅进行简单空检查的行处收到 NullPointerException。该行如下:

if(routingTable[commonBitGroups][nextNumberOfOther-1]==null)

我验证该行之前的数组不为空。commonBitGroups 和 nextNumberOfOther 都是简单的 int 类型。

我应该补充一点,这一行是使用 rmi 的应用程序的一部分,也是扩展 UnicastRemoteObject 并实现 RemoteInterface 的类的一部分。我指定这一点是因为我的印象是,即使在处理同步时也可能会发生 NullPointerException如果没有什么是真正的空(也许当某些东西被锁定时),并且我在这个应用程序中处理同步。包含该行的方法虽然没有同步,并且在我的代码中没有任何地方我尝试使用该数组作为监视器(我只有一些同步方法,没有更小的同步块(synchronized block),所以我无处明确选择特定的监视器)。

最佳答案

如果以下行抛出 NPE:

if (routingTable[commonBitGroups][nextNumberOfOther - 1] == null)

那么 routingTablenullroutingTable[commonBitGroups]null

<小时/>

你说数组初始化如下:

routingTable = new NodeId [32][15]; 
Arrays.fill(routingTable, null);

“好吧,这就是你的问题!”

第一行为您提供了一个包含 32 个 NodeId[] 的数组,其中元素初始化为非空值...大小为 15 的数组。(到目前为止还不错...)

第二行将所有 iroutingTable[i] 设置为 null ....哎呀!!

删除第二行。

关于java - java中简单的空检查时出现NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4871047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com