加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:21:28 所属栏目:Java 来源:网络整理
导读:通过 Java API,您可以看到无数次冲突的命名和实践,这对我来说真令人困惑. 例如: String类有一个私有变量(Integer),以count的名字跟踪字符串的大小,但是这是由一个getter以length()的名称返回的. 如果你移动到任何类型的数组,而不是一个getter方法的长度,他
通过 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中计算值,或者以不同的方式命名私有字段.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读