今天项目支付回调出了点问题,原来负责的同事已经离职了,就安排我帮忙查一下,后来排查出来之后觉得应该记录一下,防止踩坑。
enum EEnum { zhifubao(1, "支付宝"), weixin(2, "微信"), xinyongka(3, "信用卡"), ; private int code; private String name; EEnum(int code, String name) { this.code = code; this.name = name; } public Integer getCode() { return code; } } public static void main(String[] args) { List<Integer> list = Lists.newArrayList(EEnum.zhifubao.getCode(), EEnum.xinyongka.getCode()); list.remove(EEnum.xinyongka.getCode()); }
以上代码乍一看好像没啥,但运行起来就报错了
java.lang.IndexOutOfBoundsException: Index: 3, Size: 2 at java.util.ArrayList.rangeCheck(ArrayList.java:657) at java.util.ArrayList.remove(ArrayList.java:496) at com.example.demo.mapper.HelperExtensionMapperTest.testInsert(HelperExtensionMapperTest.java:46)
发现报错结果是索引越界,一看remove(),发现了它的两个重载方法为
E remove(int index);boolean remove(Object o);
重载两个方法一个参数是int,一个参数是Object,再一看,原来枚举里的code是int类型,两个元素,remove(3),不报错才怪。。
也不知道当时是怎么通过测试的。。。
在此记录一下,这种低级的隐藏的坑就越要吸取教训。
原文转载:http://www.shaoqun.com/a/690736.html
livingsocial:https://www.ikjzd.com/w/714.html
杨帆:https://www.ikjzd.com/w/1648
Listremove踩坑今天项目支付回调出了点问题,原来负责的同事已经离职了,就安排我帮忙查一下,后来排查出来之后觉得应该记录一下,防止踩坑。enumEEnum{zhifubao(1,"支付宝"),weixin(2,"微信"),xinyongka(3,"信用卡"),;privateintcode;privateStringname;EEn
photobucket:https://www.ikjzd.com/w/132
淘粉吧怎么返利:https://www.ikjzd.com/w/1725
美菜:https://www.ikjzd.com/w/1874
每日国际国内经贸要闻——2月20日:https://www.ikjzd.com/home/116246
口述:色狼上司对我女友动手动脚:http://lady.shaoqun.com/m/a/2134.html
详解亚马逊上的三大促销利器:https://www.ikjzd.com/home/125740
没有评论:
发表评论