2016-08-22 24 views
-4

Controller.java爲什麼我的控制器中的地圖總是返回一個nullpointerexception?

Map<String, String[]> formData = request().body().asFormUrlEncoded(); 

    if(formData.get("firstName") != null) { 
     JOptionPane.showMessageDialog(null, "not null"); 

    } 

當我點擊保存按鈕,我運行程序後,它總是返回,即使我在的firstName文本框把價值NullPointerException錯誤消息。

+3

我看了你的問題,因爲「這是可能會或可能不會涉及到,我不是想給你的錯誤消息的一些隨機碼。」 – John3136

+0

可能你需要閱讀這個http://stackoverflow.com/questions/271526/avoiding-null-statements –

+0

上面的代碼是我的代碼試圖通過地圖獲取文本框的值。我每次得到的錯誤是NullPointerException。 –

回答

1

有關如何檢測和解決空指針異常的答案this question有一些很好的信息。在你的情況下,你的對象引用可能是null。檢查request()request().body()formData是否爲空。一個簡單的方法是在使用引用之前添加assert語句。錯誤也可能與您在問題中包含的代碼無關。

要查明錯誤的位置,請使用stacktrace或讓您的調試器將您帶到導致異常的代碼行。

0

說來驗證

  1. 無論您的地圖null與否
  2. 無論您的地圖中包含"firstName"關鍵
  3. 無論"firstName"值爲空或不很重要。

請注意,這些驗證應該按照上述的確切順序進行。

您可以更改您的代碼:

Map<String, String[]> formData = request().body().asFormUrlEncoded(); 

if(formData!= null && formData.containsKey("firstName") && !formData.get("firstName").equals("")) { 
     JOptionPane.showMessageDialog(null, "not null"); 
} 
相關問題