2012-12-13 110 views
0

我不知道爲什麼我得到一個NullPointerException。我在這裏錯過了什麼?爲什麼我得到一個NullPointerException與我的數組?

public class CustomJourneyUserInformation { 
    public IJourneyDetails journeyDetails; 
    public IUserDetails userDetails; 
    public ISubscribeJourney subscribedToJourneys; 
} 

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]; 

我正在排隊一個空指針異常由>>>>

我相信allJourneyDetails[i]在這裏爲null。

+0

感謝您的編輯,無論如何都在考慮進行更改。 – Siddharth

+0

可能重複的[Java - 爲什麼我會得到這個NullPointerException?](http://stackoverflow.com/questions/9968336/java-why-am-i-getting-this-nullpointerexception) – DocMax

回答

6

它看起來像allJourneyDetails[i]爲空,因爲初始化後數組仍然填充了null。您是否期望創建數組以填充非空值的數組?這不是它在Java中的工作原理。

+1

令人驚訝的是,我看到了相同的初學者遇到過這麼多次的問題。 –

+2

IIRC,C++中的新數組已經初始化爲條目,這可能是爲什麼很多初學者感到驚訝。 –

+0

嗯。所以,看起來,過渡是罪魁禍首;) –

2
allJourneyDetails = new CustomJourneyUserInformation[subscribedToJourneys.length]; 

應該

allJourneyDetails = new CustomJourneyUserInformation[providerDetails.length]; 

過;但@LouisWasserman是正確的

相關問題