我有一個用戶對象,其中一個成員是arraylist,我創建了一個實例pf此用戶,並試圖設置新的數組列表時,它一直在壓碎「嘗試調用虛擬方法類。 User.setUser_stocks_array(java.util.ArrayList中)」上的空對象引用」nullPointerExcepction同時訪問setter(Android)
活動1:
private User localUser;
localUser = new User("", email);
String jsonString = new Gson().toJson(localUser);
Intent loginUserIntent = new Intent(getBaseContext(), StockListActivity.class);
loginUserIntent.putExtra("EXTRA_USER_FROM_LOGIN", jsonString);
startActivity(loginUserIntent);
活動2:
public User gsonReturnUser(String jsonInString){
Gson gson = new Gson();
User tmpUser = gson.fromJson(jsonInString, User.class);
Stock s1 = new Stock("hsdsf", "aa", 15, 20, "yes 4");
Stock s2 = new Stock("cvcx", "aa", 25, 50, "yes fgfd");
Stock s3 = new Stock("asd", "aa", 45, 54, "yes fdg");
Stock s4 = new Stock("uiudf", "aa", 75, 98, "yes cv");
ArrayList<Stock> tmpList = new ArrayList<Stock>();
tmpList.add(0, s1);
tmpList.add(1, s2);
tmpList.add(2, s3);
tmpList.add(3, s4);
tmpUser.setUser_stocks_array(tmpList);
return tmpUser;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stock_list);
String userFromLogin = getIntent().getStringExtra("EXTRA_USER_FROM_LOGIN");
localUser = gsonReturnUser(userFromLogin);
stockList = localUser.getUser_stocks_array();
}
我的設定器:
public void setUser_stocks_array(ArrayList<Stock> user_stocks_array) {
this.user_stocks_array = user_stocks_array;
}
爲什麼會出現這種情況? 謝謝!
更新: 我的第一項活動是不正確的推出是對NullPointerException異常的原因。
'fromJson'可以返回'null',你不處理。 – Michael
在調試器中運行並查看變量的值。一個好的候選人會是'jsonInString'不是你認爲的那樣。一個典型的原因可能是常數名稱中的拼寫錯誤。 – njzk2