这是我刚刚遇到的一个陷阱。 考虑一个整数列表:
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(6);
list.add(7);
list.add(1);
当你执行list.remove(1)时会发生什么?列表呢?remove(新的整数(1))?这可能会导致一些讨厌的bug。
在处理整数列表时,正确区分remove(int index)和remove(Object o)的方法是什么?前者从给定的索引中删除一个元素,后者通过引用删除一个元素。
这里要考虑的要点是@Nikita提到的-精确的参数匹配优先于自动装箱。