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