Ali*_*iba 8 java oop naming-conventions
我看到一些项目(例如jsoup)正在使用这个新的getter/setter命名约定:
String name()
void name(String value)
Run Code Online (Sandbox Code Playgroud)
而不是旧的getter/setter对流:
String getName()
void setName(String value)
Run Code Online (Sandbox Code Playgroud)
每个命名约定的积极和消极方面是什么?何时以及为什么你认为一个人应该优先于另一个?
第一个示例不符合JavaBeans规范 [警告PDF].有一些像Spring这样的框架,它假设了这种命名约定,特别是当你在EL中做某些事情时${object.name},会被转换为object.getName().如果您不遵循命名约定(尽管有办法解决它),这将失败.
在没有讨论何时/何时使用getter/setter的讨论中,一般来说最好坚持使用命名约定,因为这样的意外更少,特别是当你与第三方库或期望事物的框架集成时按惯例命名.
除了可读性和 API 风格之外什么都没有。
有些 API 接受这种风格,有些则不接受,Spring injections也JSF无法识别这种语法(它们明确要求对属性进行 get/set 操作)。