用于可访问数据的Java约定. (公共访问者和获取者/命名)

通过 Java API,您可以看到无数次冲突的命名和实践,这对我来说真令人困惑.

例如:

String类有一个私有变量(Integer),以count的名字跟踪字符串的大小,但是这是由一个getter以length()的名称返回的.

如果你移动到任何类型的数组,而不是一个getter方法的长度,他们只是传递变量通过一个公共访问器,它可以通过arrayInstance.length获得.

回到String类,我们有String#getBytes()方法,它是一个getter,类似于long()getter,但是执行稍微更多的逻辑来获取和返回值.

对我来说,个人来说,创建一个带有前缀get的getter似乎是多余的,例如我更喜欢输入GamePacket#data()和GamePacket#getData(),但是我觉得这个命名背后可能会有更深层的意义,而不是只是不一致.

另外,为什么Array []不使用getter的长度?

有没有人可以对我说明一点点光呢?

解决方法

Getters(和setter)来自Java Bean规范.使用它们的原因是多重的:

>大多数Java开发人员都希望访问者可以这样命名
>遵守这些约定的API更容易发现.例如,在我的IDE中,我经常会按Ctrl键找到对象中的所有可用信息.
>许多API和框架依赖于这些约定:JSP EL,MVC框架从请求参数中填充bean,JPA,依赖注入框架,如Spring等.

您通常以与保存信息的私有变量相同的方式命名getter,但重要的是封装和公共API,所以没有什么可以阻止您在getter中计算值,或者以不同的方式命名私有字段.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...