通过 Java API,您会看到大量冲突的命名和实践,这让我感到非常困惑。
例如:
The String http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java类有一个私有变量(整数),名称为count
它跟踪字符串的大小,但是这是由名为的 getter 返回的length()
.
如果您转向任何类型的数组,它们不会使用获取长度的 getter 方法,而是使用公共访问器传递变量,并且可以通过以下方式获取变量:arrayInstance.length
.
回到 String 类,我们有String#getBytes()
方法是一个 getter,类似于length()
然而,getter 会执行更多的逻辑来获取和返回值。
对我个人来说,创建一个带有前缀的 getterget
似乎多余,例如我宁愿输入GamePacket#data()
versus GamePacket#getData()
但我觉得这个命名背后可能有更深的含义,而不仅仅是不一致。
另外,为什么不Array[]
使用吸气剂length
?
有人愿意为我解释一下吗?
Getter(和 Setter)来自 Java Bean 规范。使用它们的原因有多种:
- 大多数 Java 开发人员希望访问器这样命名
- an API respecting these conventions is easier to discover. For example, in my IDE, I'll often press
get
CtrlSpace to discover all the information available in an object.
- 许多 API 和框架依赖这些约定来工作:JSP EL、从请求参数填充 bean 的 MVC 框架、JPA、依赖注入框架(如 Spring)等。
You usuallygetter 的命名方式与保存信息的私有变量的命名方式相同,但重要的是封装和公共 API,因此没有什么可以阻止您在 getter 中计算值,或者以不同的方式命名私有字段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)