5

因此,在我的家庭作业中,对于我的错误检查测试内容,我得到了 aList<SomeObject>并且得到了IndexOutOfBoundsException. 我通过检查来解决它,.isEmpty但我想知道为什么不:

boolean b = myList.Get(0) != null;

工作?

当我调试应用程序并查看时,myList我看到 9 个null. 我可以看到它的大小0,所以这可能是为什么?它的大小0,所以当我尝试获取条目时它不存在?

4

2 回答 2

14

如果是 Java:

ArrayList<Object> list = new ArrayList<Object>();
list.get(0);

将造成

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(ArrayList.java:547)
    at java.util.ArrayList.get(ArrayList.java:322)
    at HelloWorldTester.main(HelloWorldTester.java:7)

原因实际上在源代码上。rangecheck 可能正在检查您要获取的内容是否小于列表的大小。如果它更高那么

throw new IndexOutOfBoundsException();
于 2013-01-31T22:51:19.197 回答
2

按设计工作。我不明白你为什么期望能够得到任何东西,甚至null是从一个空的List. 你不能。

于 2013-01-31T23:33:04.377 回答