2014-11-21 90 views
-4

我正在使用java的ATM系統。 當我執行此代碼時,我不斷收到NullPointerException錯誤:零點異常。 Java的。 ATM

爲什麼我得到這個? 如果我用admin用戶創建一個新用戶,該功能的唯一工作方式是。但是,當我在未創建新用戶的情況下登錄(兩個用戶在程序開始時初始化)並嘗試刪除用戶時,控制檯將引發NullPointerException錯誤。

public void showDeleteUser() { 
    System.out.println("-----------------------------"); 
    System.out.println("Username of user to delete"); 
    input.nextLine(); 



    String userToDelete = input.nextLine(); 

    User _userToDelete = null; 
    for (User user : users) { 
     if (userToDelete.equals(user.getName())) { 
      _userToDelete = user; 
     } 
    } 

    if (_userToDelete != null) { 
     users.remove(_userToDelete); 
     System.out.println("Following user is deleted: " + userToDelete); 
    } else { 
     System.out.println("User: " + userToDelete 
       + "User could not be found would you like to try again?"); 
    } 

} 
+0

嗯,好吧,如果它取決於用戶登錄,那麼我不認爲這個錯誤是在Java代碼中。 – markspace 2014-11-21 17:06:01

+1

你能顯示錯誤嗎?它會告訴你空指針例外的位置,然後你可以跟蹤它,看看問題出在哪裏 – 2014-11-21 17:18:06

+0

它的input.nextLine();這給出了錯誤 – gakkgreen 2014-11-24 14:29:17

回答

0

這可能是因爲input.nextLine();永遠不會分配給變量,因此返回一個空指針。

如果您真的需要,您可以試試:String delete = nextLine();。因爲如果是這樣,下一行是完全相同的String userToDelete = nextLine();,那麼只需刪除上面提到的行。