我何时创建一个没有" get"的getter方法。在它的名字?

时间:2016-01-19 18:54:07

标签: java

以下问题困扰了我很长时间,我无法找到有关命名约定的任何信息。

有以下方法:

java.util.Collection.size();

这种方法实际上是一个集合大小的吸气剂,但它并不是以" get"与常规的getter方法不同。

那么这些类型的方法的命名约定是什么?

4 个答案:

答案 0 :(得分:5)

Collection.size()不是典型的getter,因为它不是一个简单的字段返回 - 它是一个集合的大小,因此你没有setSize(),因为这不是您设置的字段 - 这是一个“计算”值。

你可以这样思考 - getter和setter通常会一起使用,以便封装一个字段 - 如果你不能做setX(),那么它不是一个典型的getter / setter。

但这只是一个惯例问题,有些人相信在没有得到或设定的情况下总是使用它。

答案 1 :(得分:4)

没有真正的规则'为了这。有时,类会根据size()length()等函数为您提供值。其他人会通过get...()将其退回。

根据我的经验,长度通常来自size()length()(如数组),其他变量来自get...()(如在android - getHeight()中) 。

你可以这么说,因为吸气者会选择限制器,如果没有固定器,那么就不会有吸气剂。

答案 2 :(得分:1)

这些方法来自早期版本的Java,这是Java 1(v1.02等)的第一个版本。 在此示例中,尚未引入集合框架。它仅在Java 1.2中引入。到那时,我们只有java.util.Vector和java.util.Hashtable。 在引入集合框架之后,这些旧类被改进以实现适当的接口。

答案 3 :(得分:1)

  

没有"得到"在其名称

除了其他答案之外,这是一个很小的例子 - 如果变量是布尔值,那么应该使用"是"而不是"得到"。