簡體   English   中英

我如何解決此特定的空指針異常

[英]How do i fix this specific null pointer exception

我正在編寫一個對象類來計算每個字母的數量,當我運行測試代碼時,當通過“ abc”時,它向我顯示了一個空指針異常。我無法弄清原因。 測試代碼沒有錯誤,但是我的對象類中有一些錯誤。

public class LetterInventory {

   private static final int COUNTER = 26;
   private int size = 0;
   private int[] inventory;

   public LetterInventory() {
    inventory = new int [COUNTER];
 }
   public LetterInventory (String data) {
      data = data.toLowerCase();
      for(int i = 0; i < data.length(); i++) {
         int charPosition = data.charAt(i) - 'a';
         if(charPosition >= 0 && charPosition <  COUNTER) {
             inventory[charPosition]++;
             size++;
         } 
      }
   }

您沒有在第二個構造函數中初始化數組。

public LetterInventory(String data) {
    inventory = new int[COUNTER]; // <= initialization was missing
    data = data.toLowerCase();
    for (int i = 0; i < data.length(); i++) {
        int charPosition = data.charAt(i) - 'a';
        if (charPosition >= 0 && charPosition < COUNTER) {
            inventory[charPosition]++;
            size++;
        }
    }
}

我不允許發表評論,所以您可以在這里進行:

public LetterInventory(String data) {
    this();
    //inventory = new int[COUNTER]; // <= initialization was missing

    data = data.toLowerCase();
    for (int i = 0; i < data.length(); i++) {
        int charPosition = data.charAt(i) - 'a';
        if (charPosition >= 0 && charPosition < COUNTER) {
        inventory[charPosition]++;
        size++;
    }
}

暫無
暫無

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

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