getter方法和返回实例变量状态的方法之间的区别?

时间:2015-05-17 19:27:38

标签: java guava

我正在阅读Guava库,我一直在尝试看起来像这样的方法:

@Override public int size() {
  return size;
}

上述和后续之间有什么区别(战略上,传统上等)?

@Override public int getSize() {
  return size;
}

或者没有区别?这只是简写吗?

2 个答案:

答案 0 :(得分:3)

一种表单未使用JavaBeans conventions。从功能上讲,如果你的bean使用非传统的getter / setter,那么那些希望你遵循这些约定的系统将无法工作或设置非常麻烦,但是如果你,那么就是没有真正的区别。

由于Guava有很多集合,而Collection接口实际上定义了a size() method,我的直觉告诉我,Guava更倾向于遵循Collection接口而不是JavaBeans约定。 / p>

答案 1 :(得分:1)

  • 在表现方面没有区别。
  • 就可读性而言,它们也很相似,但getAttribute更多地说明了这个方法做了什么size可能意味着我们需要做一些额外的计算,吸气大多数情况下只返回值)。
  • 但我怀疑人们倾向于将他们的方法命名为get / set ...的主要原因是让他们的类成为正确的JavaBean,这些JavaBean将由使用JavaBeans的工具(如Expression Language)正确处理。

无论如何关于你的例子。我怀疑,由于List不应被视为JavaBean,因此不需要size getSize()返回size()这么简单<select name="ms"> <option value="-1" selected="false" >any</option> <option value="0" selected>only single</option> <option value="1">only married</option> </select> 就足够了。