簡體   English   中英

Java構造函數和空指針異常

[英]Java Constructors and Null Pointer Exceptions

我在玩Java,在使用自定義構造函數時遇到了問題。

當我開始程序時,主文件包含如下一行:

Word input = new Word(word);

word的構造函數如下所示:

public Word(String s){
        wordArray = s.toCharArray(); 
        protocol = new Protocol(wordArray.length);
    }

協議看起來像這樣:

public Protocol(int length)
    {
        letterList[0] = 'a';
        letterList[1] = 'b';
        letterList[2] = 'c';
        letterList[3] = 'd';
        letterList[4] = 'e';
        letterList[5] = 'f';
        letterList[6] = 'g';
        letterList[7] = 'h';
        letterList[8] = 'i';
        letterList[9] = 'j';
        letterList[10] = 'k';
        letterList[11] = 'l';
        letterList[12] = 'm';
        letterList[13] = 'n';
        letterList[14] = 'o';
        letterList[15] = 'p';
        letterList[16] = 'q';
        letterList[17] = 'r';
        letterList[18] = 's';
        letterList[19] = 't';
        letterList[20] = 'u';
        letterList[21] = 'v';
        letterList[22] = 'w';
        letterList[23] = 'x';
        letterList[24] = 'y';
        letterList[25] = 'z';
        wordLength = length;
        for(int i=0;i<wordLength*2-1;i++)
        {
            display[i] = '_';
            i++;
            display[i] = ' ';
        }
    }

我在構造word主文件中的行中獲取了NullPointerException ,然后是protocol

我已經對代碼進行了實驗,並且注意到如果我沒有在word調用protocol的構造函數,那之后構建就可以成功了,但是我還需要稍后再構建協議,因此它仍然存在問題。

我不允許在另一個構造函數中調用一個構造函數嗎? 有人對可能發生的事情有任何想法嗎?

如果您需要更多說明,請告訴我!

我不允許在另一個構造函數中調用一個構造函數嗎?

不,您絕對可以這樣做。

有人對可能發生的事情有任何想法嗎?

顯然,在以下這一行傳遞給Word構造函數時, wordnull

Word input = new Word(word);

問題可能是因為您可能尚未初始化letterList數組,所以在使用前先嘗試對其進行初始化。

public Protocol(int length)
{
   letterList = new char[26];  
   letterList[0] = 'a';  
   letterList[1] = 'b';  
   letterList[2] = 'c';  
   ...  
   ...

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM