所以在我的家庭作业中,对于我的错误检查测试的东西,我做了List<SomeObject>
得到了IndexOutOfBoundsException
。我通过检查.isEmpty
来解决它,但我想知道为什么不:
boolean b = myList.Get(0) != null;
工作?
当我调试应用程序并查看myList
时,我看到null
的9个条目。我可以看到它的大小0
,所以这可能是为什么?它的大小为0
,所以当我尝试获取一个条目时它不存在?
答案 0 :(得分:10)
如果是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();
答案 1 :(得分:2)
按设计工作。我不明白为什么你希望能从空null
获得任何东西,甚至是List
。你不能。