Igo*_*daš 2 java api collections
我已经使用Java很长一段时间了,我仍然对这个API的命名感到困惑.为什么会那样?
例如,当您有一个实例时,ArrayList它具有一个属性,即列表中添加了多少对象.要获得这个属性,你打电话,.size()而不是getSize()你真正想要做的更多.您正在尝试读取此列表的属性值,而不是对其执行某些操作.我猜在内部"调整大小"这个列表可能要比读取单个变量要复杂得多,但这是植入细节,对象的用户不应该关心它.
Dir*_*irk 11
来自"Java Collections API Design FAQ"的逐字引用
为什么不使用"豆式名称"来保持一致性?
虽然新收集方法的名称不符合"Beans命名惯例",但我们认为它们是合理,一致且适合其目的的.应该记住,Beans命名约定不适用于整个JDK; AWT确实采用了这些惯例,但这个决定有点争议.我们怀疑集合API将被普遍使用,通常在一行代码上进行多次方法调用,因此名称很短很重要.例如,考虑Iterator方法.目前,集合上的循环如下所示:
for (Iterator i = c.iterator(); i.hasNext(); ) System.out.println(i.next());即使Collection名称是一个长表达式,所有内容都整齐地排列在一行上.如果我们将方法命名为"getIterator","hasNextElement"和"getNextElement",则不再是这种情况.因此,我们采用了"传统的"JDK风格而不是Beans风格.