2012-03-20 108 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

相关问题