加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在空列表中使用“.Get(0)”时,我得到一个越界异常而不是

发布时间:2020-12-15 04:59:58 所属栏目:Java 来源:网络整理
导读:所以在我的家庭作业中,为了我的错误检查测试的东西,我做了一个List SomeObject我得到一个IndexOutOfBoundsException.我通过检查.isEmpty来解决它,但我想知道为什么不: boolean b = myList.Get(0) != null; 工作? 当我调试应用程序并查看myList时,我看到9个
所以在我的家庭作业中,为了我的错误检查测试的东西,我做了一个List< 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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读