请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师看java编程思想碰到的一个疑问

翔仔老师为什么会报这个错误!图片描述这是我写的一个注解类
图片描述这是我调用的一个注解类,但是在第16和17行的时候,我如果用17行的代码会报一个IndexOutOfBoundsException: Index 49 out of bounds for length 4 这个异常提示,但是用16行的代码却没有问题,难道new Integer(uc.id())和uc.id()这两个返回的值不一样吗?
图片描述这是另一个类的代码,该文件总共包含了三个类

图片描述这是最新的运行后的代码,两种表示的方法名义上是相等的,但是就是一个能运行,一个会报错!

正在回答 回答被采纳积分+3

1回答

翔仔 2019-12-11 00:25:16

同学好,辛苦贴全所有代码哈,或者你可以调试一下,看看new Integer(uc.id())和uc.id()分别输出啥

0 回复 有任何疑惑可以回复我~
  • 提问者 不会说话的鱼 #1
    运行的代码的图片已经上传上去了,跪求老师解惑
    回复 有任何疑惑可以回复我~ 2019-12-11 09:03:21
  • 翔仔 回复 提问者 不会说话的鱼 #2
    同学好,代码的list.remove(uc.id()) ,这个uc.id()是一个int值,相当于删除索引为id的,没有就越界了,而list.remove(new Integer(uc.id())) 这个相当于删除一个值为id 的Integer对象,是调用的list.remove(Object)方法,并不是调用的list.remove(index)
    回复 有任何疑惑可以回复我~ 2019-12-11 23:13:34
  • 提问者 不会说话的鱼 回复 翔仔 #3
    翔仔老师感谢,解决了我的疑惑
    回复 有任何疑惑可以回复我~ 2019-12-13 11:24:32
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号