为什么我的数组会出现NullPointerException?

Sid*_*rth 0 java interface nullpointerexception

我无法弄清楚为什么我得到一个NullPointerException.我在这里错过了什么?

public class CustomJourneyUserInformation {
    public IJourneyDetails journeyDetails;
    public IUserDetails userDetails;
    public ISubscribeJourney subscribedToJourneys;
}
Run Code Online (Sandbox Code Playgroud)

IJourneyDetails,IUserDetails,ISubscribeJourney都是接口

在一个不同的活动中,我正在打电话

private CustomJourneyUserInformation[] allJourneyDetails;
    allJourneyDetails = new CustomJourneyUserInformation[subscribedToJourneys.length];
    if (providerDetails[i] != null)
>>> allJourneyDetails[i].journeyDetails = providerDetails[i];
    if (userDetails[i] != null)
    allJourneyDetails[i].userDetails = userDetails[i];
    if (subscribedToJourneys[i] != null)
        allJourneyDetails[i].subscribedToJourneys = subscribedToJourneys[i];
Run Code Online (Sandbox Code Playgroud)

我在由>>>>标记的行中得到一个空指针异常

我相信allJourneyDetails[i]在这里是空的.

Lou*_*man 6

它看起来像是allJourneyDetails[i]null,因为数组null在初始化后仍然填充.

您是否期望创建数组以使用非空值填充数组?这不是它在Java中的工作方式.

  • IIRC,C++中的新数组已经初始化了条目,这可能是许多初学者感到惊讶的原因. (2认同)