【发布时间】:2011-08-02 13:18:54
【问题描述】:
这两个模棱两可的List.remove有历史原因吗?
对我来说,这似乎是糟糕的设计。
对于 List<Integer> 来说,这似乎真的很令人困惑。
编辑:
每个人看起来都很好。让我稍微准确一点。
假设我有一个List<Boolean>。
Integer idx = Integer.valueOf(2);
list.remove(idx)
虽然idx 是一个对象,但Java 编译并将删除索引2 处的项目。
现在,如果它是 List<Integer>,那么相同的代码将调用具有完全不同行为的不同方法。
我们不要谈论泛型会发生什么。
我觉得不同的行为意味着不同的名字是一条宝贵的规则,尤其是在同一个班级中。
【问题讨论】:
-
在
List<Integer>的情况下,删除列表中的int的适当方法是使用remove(Integer.valueOf(number))。
标签: java api list collections