一尘不染

为什么ArrayList没有getSize()而不是size()?

jsp

我在某些JSP页面中大量使用ArrayList。我想像这样访问一个ArrayList:

${myArrayList.size}

但是由于对象必须符合JavaBean标准myArrayList.getMyPropertyName()${myArrayList.myPropertyName}在JSP
/ JSTL中),因此该myArrayList.size()函数不可访问。

我还应该使用其他课程吗?

更新:

很难接受这样的功能,例如仅在清洁的衬板上保留了JSP中的ArrayList的大小之类的功能,但似乎还有其他原因是设计师选择了该功能.size()而不是.getSize()

我想如果您支持${fn:length(myArrayList)}${myArrayList.getSize()}语法,这的确不是问题。


阅读 412

收藏
2020-06-10

共1个答案

一尘不染

标题说明了一切:为什么ArrayList没有getSize()而不是size()?

如“ Java Collections
API设计常见问题解答

”中所述:

为什么不使用“ Beans样式名称”来保持一致性?

尽管新集合方法的名称不遵循“
Beans命名约定”,但我们认为它们是合理,一致且适合其目的的。应当记住,Bean命名约定不适用于整个JDK。AWT确实采用了这些公约,但是该决定有些争议。我们怀疑collections
API会被广泛使用,通常在一行代码上使用多个方法调用,因此名称简短很重要。考虑例如Iterator方法。当前,对集合的循环如下所示:

    对于(迭代器i = c.iterator(); i.hasNext();)
        System.out.println(i.next());

即使Collection名称是一个长表达式,所有内容都可以整齐地放在一行中。如果我们将方法命名为“ getIterator”,“
hasNextElement”和“ getNextElement”,那么情况将不再如此。因此,我们采用了“传统的” JDK样式而不是Beans样式。

2020-06-10