2012-03-20 111 views
0

我想遍歷一個向量元素,並試圖找出如果在載體中的位置等於空...爲什麼這行代碼給我一個錯誤?

if(_vecForShapes.get(i)!=null)//this line works fine but when it gets to a position where  it is null it gives me an error? Any ideas? 
{ 

} 

謝謝!

+0

你說你想知道一個職位是否等於空,那你爲什麼使用「不等於」? – 2012-03-20 18:25:17

+0

我不知道'_vecForShapes'是什麼,但它是'get'與一個無效索引返回'null'文件?如果沒有,你沒有理由期待這種行爲。 – 2012-03-20 18:27:19

+1

什麼錯誤?堆棧跟蹤?可能是你的對象_vecForShapes爲null,當你試圖從「get(i)」中得到一些東西時,你會得到一個錯誤。 – Maxim 2012-03-20 18:27:42

回答

0

你確定它得到(i)是null,而不是你已經超過_vecForShapes中的項目數? _vecForShapes.get(i)拋出一個錯誤的可能性大於比較結果爲null的可能性。

什麼類型會得到(i)返回?

+0

所以我已經通過代碼...我有vecForShapes中的2個元素...我想執行這兩個元素的if語句中的代碼,然後當3rd is null我想跳過if塊...我也嘗試了函數.elementAt(i); – 2012-03-20 18:33:49

+0

你可以發佈你的循環代碼嗎? – 2012-03-20 18:41:39

+0

@JamesHatton:沒有第三個元素。你說「第三個是空的」,但事實並非如此。它根本不存在。除非'get'具體指的是返回null的索引不好的文檔,否則你不應該指望它這樣做。 (也許它會拋出一個異常,也許它是UB,誰知道?) – 2012-03-20 18:50:32

相關問題