微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于可访问数据的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中计算值,或者以不同的方式命名私有字段.

原文地址:https://www.jb51.cc/java/125679.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐